这是一个创建于 3908 天前的主题,其中的信息可能已经有所发展或是发生改变。
以前阅读文档的时候了解到发送网络请求时候如果使用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 |