NSURLSessionConfiguration 不返回 URLRequest 数据
Posted
技术标签:
【中文标题】NSURLSessionConfiguration 不返回 URLRequest 数据【英文标题】:NSURLSessionConfiguration not returning the URLRequest data 【发布时间】:2016-10-08 08:46:28 【问题描述】:我正在使用以下代码在 URLConfiguration 中设置代理设置。
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)
这行代码用html数据返回了我proxyHost
的结果,而不是返回URL
(http://example.com/sampleid?id=506)的数据
谁能帮我解决这个问题。
提前致谢。
【问题讨论】:
【参考方案1】:sessionConfig.connectionProxyDictionary = proxyDict;
尝试将其注释掉,看看它是否能解决您的问题。从您对我的更改的回复来看,我的线程上的代理评论似乎您实际上并不想通过代理进行连接。还有什么价值
代理主机 代理端口
【讨论】:
如果我评论你说的那一行,那么响应会很好。但如果没有该行,您将无法将代理设置设置为 URLSessionConfiguration。我用proxyHost
和proxyPort
值更新了我的问题
看起来你的代理是一个本地 IP 而不是一个服务器,这就是它可能有问题的原因。尝试使用谷歌免费代理并尝试将您的 proxyHost 和 proxyPort 更改为不同的。以上是关于NSURLSessionConfiguration 不返回 URLRequest 数据的主要内容,如果未能解决你的问题,请参考以下文章
测试是不是遵守 NSURLSessionConfiguration 设置
NSURLSessionConfiguration 不接受 HTTPAdditionalHeaders 中的“内容类型”
通过NSURLSessionConfiguration对类属性property(class)的思考
NSURLSessionConfiguration 不返回 URLRequest 数据