2016-10-08 3 views
0

Я использую следующий код, чтобы установить настройку прокси-сервера в URLConfiguration.NSURLSessionConfiguration не возвращает данные URLRequest

NSString *proxyHost = @"192.168.xx.xxx"; 
NSNumber *proxyPort = [NSNumber numberWithInteger:8090]; 
NSString *request = [NSString stringWithFormat: 
        @"http://example.com/sampleid?id=506"]; 

NSURL *URL = [NSURL URLWithString: 
       [request stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 


NSURL *url = [NSURL URLWithString:[request stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 

NSURLRequest *URLrequest = [NSURLRequest requestWithURL:url]; 

NSDictionary *proxyDict = @{ 
          @"HTTPEnable" : [NSNumber numberWithInt:1], 
          (NSString *)kCFStreamPropertyHTTPProxyHost : proxyHost, 
          (NSString *)kCFStreamPropertyHTTPProxyPort : proxyPort, 
          (NSString *)kCFProxyUsernameKey : hostUserName, 
          (NSString *)kCFProxyPasswordKey : hostPassword, 

          @"HTTPSEnable" : [NSNumber numberWithInt:1], 
          (NSString *)kCFStreamPropertyHTTPSProxyHost : proxyHost, 
          (NSString *)kCFStreamPropertyHTTPSProxyPort : proxyPort, 
          (NSString *)kCFProxyUsernameKey : hostUserName, 
          (NSString *)kCFProxyPasswordKey : hostPassword, 
          }; 

NSURLSessionConfiguration *sessionConfig = [NSURLSessionConfiguration defaultSessionConfiguration]; 
sessionConfig.connectionProxyDictionary = proxyDict; 

NSURLSession *defaultSession = [NSURLSession sessionWithConfiguration: sessionConfig delegate: nil delegateQueue: [NSOperationQueue mainQueue]]; 

__block NSDictionary *returnJsonDictionary; 
__block NSError *error1; 

NSURLSessionDataTask *task = [defaultSession dataTaskWithRequest:URLrequest completionHandler: 
           ^(NSData *data, NSURLResponse *response, NSError *error) { 
            NSLog(@"NSURLSession got the response [%@]", response); 
            NSLog(@"NSURLSession got the data [%@]", data); 
}]; 
[task resume]; 

Но эта строка кода ^(NSData *data, NSURLResponse *response, NSError *error) возвращает результаты моего proxyHost с HTML-данных вместо возврата данных URL (http://example.com/sampleid?id=506)

Может кто-нибудь помочь мне решить эту проблему.

Заранее спасибо.

ответ

0
sessionConfig.connectionProxyDictionary = proxyDict; 

Попробуйте прокомментировать это и выясните, разрешает ли он вашу проблему. Из вашего ответа на мое изменение прокси-комментарий в моем потоке кажется, что вы действительно не хотите подключаться через прокси-сервер. Кроме того, что значение

proxyHost
ProxyPort

+0

Если я комментирую линии вы сказали, то ответ будет хорошо. Но без этой строки вы не можете установить настройку прокси для URLSessionConfiguration. И я обновил свой вопрос с помощью значений «proxyHost» и «proxyPort» –

+0

Похоже, что прокси-сервер ur является локальным IP-адресом, а не сервером, поэтому он может иметь проблемы. Попробуйте бесплатные прокси google и попробуйте изменить ur proxyHost и proxyPort на другой. – Charlie

Смежные вопросы