Xcode Objective C SOAP XML 3G 不起作用


- (void)viewDidLoad
 {
[super viewDidLoad];
 NSString *id=@"1";
 NSString *GetExRequest = [NSString stringWithFormat:@"<SOAP-     ENV:Envelope n"
                     "xmlns:xsd="http://www.w3.org/2001/XMLSchema" n"
                     "xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" n"
                     "xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"n"
                     "SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" n"
                     "xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> n"
                     "<SOAP-ENV:Header> n"
                     "<UserName xmlns="CH1">a1</UserName>n"
                     "<Password xmlns="CH2">a2</Password>n"
                     "</SOAP-ENV:Header> n"
                     "<SOAP-ENV:Body> n"
                     "<NewsGet xmlns="http://tempuri.org/">n"
                     "<id>%@</id> n"
                     "</NewsGet> n"
                     "</SOAP-ENV:Body> n"
                     "</SOAP-ENV:Envelope>n", id];
 NSURL *url = [NSURL URLWithString:@"https:/www.a.com/Service1.svc"];
 NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url];
 NSString *msgLength = [NSString stringWithFormat:@"%d",GetExRequest length]];
 [theRequest addValue: @"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
 [theRequest addValue: @"http://tempuri.org/IService1/NewsGet"  forHTTPHeaderField:@"Soapaction"];
[theRequest addValue: msgLength forHTTPHeaderField:@"Content-Length"];
[theRequest setHTTPMethod:@"POST"];
[theRequest setHTTPBody: [GetExRequest dataUsingEncoding:NSUTF8StringEncoding]];
NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
if(theConnection)
{
webData = [[NSMutableData data] init];
 }
else
{
 NSLog(@"theConnection is NULL");
 }
itemArray =[[NSMutableArray alloc] init];
 }
-(void)connection:(NSURLConnection *)connection didReceiveData: (NSData *)data
{
[webData appendData:data];
}

你好,我在objective-c上的webservice连接有问题。在3G连接上,我们的连接速度太慢或者不工作。但在WiFi上,我的应用运行得很好。3G连接速度很快,但我不明白为什么会出现这种减速。我应该为3G做一些额外的事情吗?

当我把断点这一节,在3G上的时间,它进入didReceiveData函数。但在wifi上,它总是进入

根据我在许多项目中的经验,您的服务器响应最近可能就是为什么您在3G连接的设备上得到延迟回复的原因。

所以我的工作是改变默认超时为明确设置超时为我的请求。

检查这个

NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:40.0];

使用您的超时以获得正确的响应。

相关内容

  • 没有找到相关文章

最新更新