1

我向Web服务发出请求,但是当我选择3G连接时,调用了didfailwitherror方法并显示错误“请求超时”。当连接是 wifi 时,我得到了预期的结果。

我正确实现了所有可以触发的方法,但我不知道如何解决这个问题。这会发生吗,因为反应太大了?我也增加了 timeoutInterval,但没有成功。

这是回应:

[{“价值”:“2009 年 9 月 1 日 - 2009 年 10 月 23 日”},{“价值”:“2009 年 9 月 1 日 - 2009 年 9 月 30 日”},{“价值”:“17 noiembrie - 25 noiembrie 2009”},{“价值” :“2009 年 12 月 7 日 - 12 月 16 日”},{“价值”:“2010 年 2 月 22 日 - 2010 年 2 月 29 日”},{“价值”:“2010 年 8 月 1 日 - 8 月 31 日”},{“价值”:“18 月 18 日 - 30 noiembrie 2010"}, {"value" : "14 februarie - 31 martie 2011"}, {"value" : "26 aprilie - 29 aprilie 2011"}, {"value" : "29 iunie - 20 iulie 2011"} ,{“价值”:“2011 年 9 月 6 日 - 9 月 14 日”},{“价值”:“2011 年 10 月 10 日 - 2011 年 12 月 6 日”},{“价值”:“2011 年 12 月 7 日 - 12 月 31 日”},{“价值”:“2012 年 2 月 15 日 - 2012 年 3 月 30 日”},{“价值”:“2012 年 4 月 5 日 - 2012 年 5 月 9 日”},{“价值”:“2012 年 5 月 5 日”},{“价值”:“ 05 noiembrie - 22 noiembrie 2012"},{"value":"23 noiembrie - 2012 年 12 月 6 日"},{"value":"03 decembrie - 2012 年 12 月 28 日"}]

这是代码:

  NSURL * url = [NSURL URLWithString:[NSString stringWithFormat:@"%@api-v2.asmx", MainUrl]];

NSMutableURLRequest * request = [NSMutableURLRequest requestWithURL:url
                                                        cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                    timeoutInterval:50.0];

NSString * parameters = [[NSString alloc] initWithString:[self XmlRequest]];
NSLog(@"Request=%@", parameters);
NSString * msgLength = [NSString stringWithFormat:@"%d", [parameters length]];

[request addValue:@"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[request addValue:@"http://tempuri.org/GetIndexLinkedTable" forHTTPHeaderField:@"SOAPAction"];
[request addValue:msgLength forHTTPHeaderField:@"Content-Length"];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:[parameters dataUsingEncoding:NSUTF8StringEncoding]];


NSURLConnection * connection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES];

if (connection){
    self.responseData = [NSMutableData data];
}
}
4

1 回答 1

0

据我所知,连接应该保持活跃。NSURLConnection就网络数据传输而言,它是一个非常智能的类。但是,您可以尝试一些事情。有一个属性NSURLRequest可以设置超时间隔。可以设置如下

request.timeoutInterval = 60.0 

试试这个看看它是否有帮助,因为我听说在构造函数中使用它存在一些问题。您的数据可能不足以保证超时,因此还要检查您的服务器设置以确保它能够接受请求,并且还设置了合适的超时间隔。

于 2013-03-14T15:45:14.430 回答