今天遇到了一个奇怪的问题,关于系统的同步网络请求

2015-03-27 10:54:56 +08:00
 lynulzy
以前阅读文档的时候了解到发送网络请求时候如果使用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方法调用之后抓包会发现此方法会产生两个请求,有什么方法解决?
2164 次点击
所在节点    iDev
4 条回复
lynulzy
2015-03-27 10:55:11 +08:00
额,不支持markdown吗?
elden
2015-03-27 12:16:48 +08:00
如果是POST请求,先看看第一个Response是不是100 Continue响应。
lynulzy
2015-03-27 12:51:01 +08:00
@elden 同步请求,不是异步的
elden
2015-03-27 13:30:31 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/179662

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX