这是一个创建于 3564 天前的主题,其中的信息可能已经有所发展或是发生改变。
以前阅读文档的时候了解到发送网络请求时候如果使用connection的init方法会自动发起一次请求,之后再发送start消息的时候会再次产生一个请求。
而在我的项目中使用了同步请求,代码如下
<pre>
NSURL *url = [NSURL URLWithString:reqData.url];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60]; //????
NSURLResponse *t_response = nil;
NSError *t_err = nil;
if (HttpConnMethod_GET == reqData.httpMethod) {
[request setHTTPMethod:@"GET"];
} else {
NSData *postData = [self generateFormDataFromPostDictionary];
[request setHTTPMethod:@"POST"];
[request setValue:MULTIPART forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];
}
NSData *rcvData = [NSURLConnection sendSynchronousRequest:request returningResponse:&t_response error:&t_err];
rcvStr = [[NSString alloc] initWithData:rcvData encoding:NSUTF8StringEncoding];
//TODO:
rcvDict = [NSJSONSerialization JSONObjectWithData:rcvData options:NSJSONReadingMutableContainers error:nil];
err = t_err;
<code>
问题来了,sendSynchronousRequest方法调用之后抓包会发现此方法会产生两个请求,有什么方法解决?
4 条回复 • 2015-03-27 13:30:31 +08:00
|
|
1
lynulzy 2015-03-27 10:55:11 +08:00
额,不支持markdown吗?
|
|
|
2
elden 2015-03-27 12:16:48 +08:00
如果是POST请求,先看看第一个Response是不是100 Continue响应。
|
|
|
3
lynulzy 2015-03-27 12:51:01 +08:00
|
|
|
4
elden 2015-03-27 13:30:31 +08:00
|