Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios HTTP Post超时-在超时间隔内启动多个请求_Ios_Http_Post - Fatal编程技术网

Ios HTTP Post超时-在超时间隔内启动多个请求

Ios HTTP Post超时-在超时间隔内启动多个请求,ios,http,post,Ios,Http,Post,我正在使用HTTPPOST方法并启动一个同步请求。 [NSURLConnection sendSynchronousRequest:…] 对于HTTP POST请求,默认超时时间为75秒,正如许多线程中所讨论的那样 但是,在75秒的超时期间,对于使用所有相同参数发出的相同请求,将为我们启动多个web服务请求 请让我们知道是什么原因导致启动此多个请求?这通常是由于HTTP POST还是由于同步请求 @iOS示例代码 [body appendData:[[NSString stringWithFor

我正在使用HTTPPOST方法并启动一个同步请求。 [NSURLConnection sendSynchronousRequest:…]

对于HTTP POST请求,默认超时时间为75秒,正如许多线程中所讨论的那样

但是,在75秒的超时期间,对于使用所有相同参数发出的相同请求,将为我们启动多个web服务请求

请让我们知道是什么原因导致启动此多个请求?这通常是由于HTTP POST还是由于同步请求

@iOS示例代码

[body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[request setHTTPBody:body];
[request addValue:[NSString stringWithFormat:@"%d", body.length] forHTTPHeaderField: @"Content-Length"];

 [[NSURLCache sharedURLCache] setDiskCapacity:0];
 [[NSURLCache sharedURLCache] setMemoryCapacity:0];

 NSURLResponse *response;
 response = nil;

 urlData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];              
 if(urlData)
 {
        NSString *responseString = [[NSString alloc] initWithData:urlData encoding:NSASCIIStringEncoding];
        [self parseStringInformation:responseString infoDict:informationDictionary];
        //NSLog(@"%@",responseString);
 }

如果没有服务器的请求-响应日志,则有几种可能性

程序员错误:您是否已经经历了所有“gotchya”类型的情况

  • 您是否在“urlData=[NSURLConnection sendSynchronousRequest:…”行之前放置了一条日志消息,以确保代码只调用它一次

  • 您是否从主GUI线程中调用此函数(如果不支持/不推荐),这意味着它可能会导致您所描述的副作用

  • 您确定您的请求已设置为POST,并且具有正确的标题,如“内容类型:多部分/表单数据,边界=X”

Web服务器响应:如果没有Web服务器日志(或发布到的服务代码),很难说

  • 可能您的服务器正在向客户端发送周期性重定向。如果您未实现“connection:willSendRequest”,则一个请求的重定向可能会执行?X?次
API错误:您发现了一些导致不必要的副作用的极端情况。也许苹果有一个bug追踪器或开发者支持论坛

  • 如果是这种情况,你必须解决这个bug,直到它被修复。我建议实现异步调用链。“异步加载数据”

您是否可以删除源代码的一个示例部分,可能是有问题。我从未有过这种行为。@iOS在上面添加了示例代码有趣的是,我想检查并记录异步传输过程中可见的所有事件,可能是系统有一些原因导致多个请求的重定向。仅供参考调试我建议使用asynchron post并放入所有事件,并使用
NSLog()记录它们
查看系统端发生的情况。抱歉,没有办法在同步模式下记录这些事件。希望这有帮助,否则我只能检查从我的系统传输的情况。我面临类似的问题。我的应用程序在过去2年中一直在工作,没有任何问题。最近我注意到有多篇帖子,当我分析时,发现问题从9月中旬开始。我注意到当时用户在某个地方可以使用IOS6,用户开始升级到IOS 6。我将朝着这个方向探索(目前还没有结论)。论坛中还有其他人注意到了这一点吗?有什么建议我们可以进一步探索吗?