Nik*_*a P 4 iphone response request nsurlconnection ios
一旦我向服务器发送请求(通过NSURLConnection sendSynchronousRequest方法),服务器在大约2秒钟内收到请求,它会在另外3-5秒内处理并发回响应.但是,我只能在30-35秒内收到回复.这种延迟使我们的沟通非常缓慢.
即使是异步API也会得到延迟响应.
早些时候,一切都运行正常,客户在10秒内收到回复.还有谁有相同的问题吗?可能是什么原因?
编辑
这里是Wireshark分析的截图:
链接到更好的图像

我怎么能看到什么包说什么?..为什么它会被推迟?
EDIT2 这是代码:
NSHTTPURLResponse *response=nil;
NSMutableURLRequest *theRequest=[NSMutableURLRequest requestWithURL:[NSURL URLWithString:nsURL] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:180.0];
[theRequest setHTTPMethod:@"POST"];
[theRequest setTimeoutInterval:180.0];
[theRequest setHTTPBody:[[NSString stringWithFormat:@"%@",sdata] dataUsingEncoding:NSASCIIStringEncoding]];
NSError *error= nil;
NSData *result = [NSURLConnection sendSynchronousRequest:theRequest returningResponse:&response error:&error];
if (error ) {
NSLog(@"error sending synchronous request: %@", error);
}
NSLog(@"request completed with code:%d",response.statusCode);
Run Code Online (Sandbox Code Playgroud)
我会避免打电话sendSynchronousRequest.如果您没有在后台线程上进行调用(您不想阻止UI线程),请使用异步版本.
你怎么知道什么时候收到iOS回复?一个NSLog?UI状态发生变化?
另见这些问题:
NSURLConnection sendSynchronousRequest - 背景到前景
NSURLConnection sendSynchronousRequest需要太多时间来响应
更新
如果你有点卡住,一种策略可能是排除使用NSURLConnection问题.
NSURL异步连接调用而不是同步如果您想仔细查看HTTP连接的内容,可以使用Charles,Fiddler或Wireshark等工具来调试正在发送和接收的数据.要从这种分析中获得最大收益,您需要具备一些HTTP协议的知识.这可能比前面提到的策略更耗时.
另请参阅如何监控从iOS模拟器进行的网络调用等问题.
更新
您是否正在访问自己的网络服务器,或者是其他人的网络服务器?
您是否仔细查看了发送到您的网络服务器的标头(以及返回的标头)?例如,注意内容长度.内容长度错误可能导致延迟,如解释在这里.
要查看请求和返回的标头,您可以在命令行上使用Firebug或wget或curl之类的东西.
此外,仔细检查有没有在您的网址的结尾换行符,如所描述这里.
| 归档时间: |
|
| 查看次数: |
4212 次 |
| 最近记录: |