我正在使用HTTP Post方法并启动同步请求。 [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);
}
答案 0 :(得分:1)
没有服务器的请求 - 响应日志,有几种可能性。
程序员错误:您是否已经完成了所有“gotchya”类型的情况?
您是否在“urlData = [NSURLConnection sendSynchronousRequest:...”行之前放置了一条日志消息,以确保您的代码只调用一次?
您是否在主GUI线程中调用此函数,如果您不支持/推荐,这意味着它可能会导致像您所描述的那样的副作用。 https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSURLConnection_Class/Reference/Reference.html
您确定您的请求已设置为POST并且具有正确的标题,例如“Content-type:multipart / form-data,boundary = X”
Web服务器响应:没有Web服务器日志(或您的POST服务代码),很难说......
API错误:您发现了一些引起不良副作用的角落情况。也许apple有一个bug跟踪器或开发人员支持论坛?