gpt4 book ai didi

ios - NSURLConnection 太慢

转载 作者:行者123 更新时间:2023-11-29 12:38:35 26 4
gpt4 key购买 nike

我在我的应用程序中使用 NSURLConnection,我在其中扫描条形码,通过 NSURLConnection 发送 XML,Java 服务向我发回 XML。我的问题是,使用 Wifi 时,响应时间还不错,但是当我使用 3G 时,速度慢得要命。

我怎样才能在 3G 中保持连接?

  NSString *xmlHomeMade = [NSString stringWithFormat:
@"<?xml version='1.0'?>"
"<service name='CorePDAService' method='blahblah'>"
"<arg class='java.lang.String'>%@</arg>"
"</service>",cab];


NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

NSString *ipAgence = [defaults objectForKey:@"ipAgence"];

NSLog(@"agence IP Test : %@",ipAgence);


NSURL *url = [NSURL URLWithString:ipAgence];


NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url];
NSString *msgLength = [NSString stringWithFormat:@"%d", [xmlHomeMade length]];

[theRequest addValue: @"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[theRequest addValue: msgLength forHTTPHeaderField:@"Content-Length"];
[theRequest setHTTPMethod:@"POST"];
[theRequest setTimeoutInterval:10];
[theRequest setHTTPBody: [xmlHomeMade dataUsingEncoding:NSUTF8StringEncoding]];


NSError *error = nil;
NSURLResponse *urlResponse = nil;
NSData* data = [NSURLConnection sendSynchronousRequest:theRequest returningResponse:&urlResponse error:&error] ;


if(urlResponse == nil){

if (error) {

[self displayAlert:@"" message:@"Error"];

}

}


NSString* newStr = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];


[self parseXML:data];

最佳答案

这里的答案是隐含的。

3G 是一种蜂窝技术,与 WiFi 连接(可能是 ADSL、VDSL 或电缆)相比,它更容易受到抖动和延迟等网络问题的影响。

特别是(由于 3G 的实现方式)当它开始创建连接时,它必须请求网络资源并分配一个信道(它比那复杂得多 - 但它基本上是jist,我曾经是电信硬件提供商的开发人员)。

“加速”3G 连接的唯一真正方法是 a) 减少有效负载或 b) 始终保持事件连接(无线接入限制)。

3G 作为一种技术具有高延迟和突发性。开始突发时,它通常以合理的速度(相对)运行,但在最初创建连接时会有一些严重的延迟。

当连接在一段时间内处于非事件状态时,它将丢弃 radio 网络 Controller 授予的资源,重新请求这是减速的一部分。

关于ios - NSURLConnection 太慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25608563/

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