gpt4 book ai didi

iphone 延迟来自服务器的响应

转载 作者:可可西里 更新时间:2023-11-01 05:04:41 25 4
gpt4 key购买 nike

一旦我向服务器发送请求(通过 NSURLConnection sendSynchronousRequest 方法),服务器会在大约 2 秒内收到它,它会处理并在再过 3-5 秒。但是,我只在 30-35 秒内得到回复。这种延迟使我们的沟通非常缓慢。

即使是异步 API 也会延迟响应。

早些时候,一切正常,客户端在 10 秒内收到响应。还有谁有相同的问题吗?可能是什么原因?

编辑下面是 Wireshark 分析的截图:

Link为了更好的形象

enter image description here

我应该如何查看哪个数据包在说什么?..为什么会延迟?

编辑2这是代码:

 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);

最佳答案

我会避免调用 sendSynchronousRequest。如果您尚未在后台线程上进行调用(您不想阻塞 UI 线程),请改用异步版本。

您如何知道何时收到 iOS 响应?一个 NSLog?界面状态改变?

另见这些问题:

NSURLConnection sendSynchronousRequest - background to foreground

NSURLConnection sendSynchronousRequest taking too much time to respond

更新

如果您遇到困难,一种策略可能是排除使用 NSURLConnection 的问题。

  • 策略 1:尝试使用 NSURL 的异步连接调用而不是同步
  • 策略 2:尝试使用不同的 HTTP 库,例如 AFNetworking

如果您想仔细查看 HTTP 连接的情况,可以使用 Charles 等工具。 , FiddlerWireshark调试正在发送和接收的数据。要从此类分析中获得最大 yield ,您需要对 HTTP 协议(protocol)有一些了解。这可能比前面提到的策略更耗时。

另请参阅 How to monitor network calls made from iOS Simulator 等问题.

更新

您访问的是您自己的网络服务器还是其他人的?

您是否仔细查看了发送到您的网络服务器的 header (以及返回的 header )?例如,注意内容长度。如 here 所述,错误的内容长度会导致延迟.

要查看请求和返回的 header ,您可以在命令行上使用 Firebug 或类似 wget 或 curl 的工具。

此外,请仔细检查您的 URL 末尾是否没有换行符,如 here 所述.

关于iphone 延迟来自服务器的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14397887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com