2011-09-10 68 views
1

我正在执行一个请求(SOAP webservice)并且响应速度非常慢(请参阅下面的日志)。
使用NSURLConnection缓慢下载

这个问题既发生在设备上,也发生在模拟器中。
当我使用cURL或SoapUI执行相同的请求时,但是呼叫一秒钟内完成。
什么可能导致这种情况?

代码

NSString *msgLength = [NSString stringWithFormat:@"%d", [soapRequest length]]; 

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];    
[request addValue:@"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];  
[request addValue:msgLength forHTTPHeaderField:@"Content-Length"]; 
[request setHTTPMethod:@"POST"];  
[request setHTTPBody:[soapRequest dataUsingEncoding:NSUTF8StringEncoding]]; 
connection = [[NSURLConnection alloc] initWithRequest:request delegate:self]; 

模拟器日志

00:58:31.727 [WSClient connection:didReceiveData:] [Line 109] |NETWORK| Received data. Size[1440] 
00:58:32.858 [WSClient connection:didReceiveData:] [Line 109] |NETWORK| Received data. Size[1440] 
00:58:33.979 [WSClient connection:didReceiveData:] [Line 109] |NETWORK| Received data. Size[5760] 
00:58:35.106 [WSClient connection:didReceiveData:] [Line 109] |NETWORK| Received data. Size[8640] 
00:58:36.130 [WSClient connection:didReceiveData:] [Line 109] |NETWORK| Received data. Size[1440] 
00:58:38.287 [WSClient connection:didReceiveData:] [Line 109] |NETWORK| Received data. Size[1440] 
00:58:40.430 [WSClient connection:didReceiveData:] [Line 109] |NETWORK| Received data. Size[1440] 
00:58:41.762 [WSClient connection:didReceiveData:] [Line 109] |NETWORK| Received data. Size[1440] 
00:58:42.273 [WSClient connection:didReceiveData:] [Line 109] |NETWORK| Received data. Size[1440] 
00:58:42.274 [WSClient connection:didReceiveData:] [Line 109] |NETWORK| Received data. Size[1440] 
00:58:45.243 [WSClient connection:didReceiveData:] [Line 109] |NETWORK| Received data. Size[1440] 
00:58:46.532 [WSClient connection:didReceiveData:] [Line 109] |NETWORK| Received data. Size[1440] 
00:58:48.008 [WSClient connection:didReceiveData:] [Line 109] |NETWORK| Received data. Size[428] 
00:58:48.010 [WSClient connectionDidFinishLoading:] [Line 121] |NETWORK| Done 

回答

0

我不能回答你的问题直接。也许它与你的代理处理程序有关?也许可以帮助发布这些。

无论如何,我真的想把ASIHTTPRequest引起您的注意。这是一个广泛使用和流行的选择,可能会让你的生活更轻松。

+0

委托所做的唯一事情是[myData appendData:data]。 – Egil