gpt4 book ai didi

ios - NSURLResponse 在模拟器中很快出现,但在实际设备上它会在一段时间后出现或返回 NULL

转载 作者:行者123 更新时间:2023-11-29 01:58:39 26 4
gpt4 key购买 nike

我正在创建一个在每个 View Controller 上调用 Web 服务的应用程序。该应用程序在模拟器上运行良好,但在实际设备上,它运行速度非常慢,或者有时会返回空响​​应,这就是应用程序因服务器的空响应而崩溃的原因。有什么解决方案可以解决这个问题。我对 Objective-C 编程很陌生。请建议我一种解决问题的方法。非常感谢。:)

在这里,我添加了向网络服务发送请求并接收响应的代码部分。

{
NSURL *url = [NSURL URLWithString:@"http://www.someurl.com/somewebservice.asmx"];
NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url];
NSString *msgLength = [NSString stringWithFormat:@"%d", [soapMessage length]];

[theRequest addValue:@"somehost.in" forHTTPHeaderField:@"Host"];
[theRequest addValue:@"someUrl/someWebMethod" forHTTPHeaderField:@"SOAPAction"];
[theRequest addValue:@"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[theRequest addValue:msgLength forHTTPHeaderField:@"Content-Type"];
[theRequest setHTTPMethod:@"POST"];
[theRequest setHTTPBody:[soapMessage dataUsingEncoding:NSUTF8StringEncoding]]; [theRequest setHTTPBody: [soapMessage dataUsingEncoding:NSUTF8StringEncoding]];

NSURLConnection *theConnection =
[[NSURLConnection alloc] initWithRequest:theRequest delegate:self];

NSURLResponse *response1 = [[NSURLResponse alloc] init];;
self.webResponseData = [NSURLConnection sendSynchronousRequest:theRequest returningResponse:&response error:&error];

self.response = [[NSURLResponse alloc] init];
}

-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
NSLog(@"Printing response...\n");
NSLog(@"%@",response);
}


-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
[self.webResponseData appendData:data];
}

最佳答案

您正在使用 sendSynchronousRequest。不。从不,从不,从不在主线程上同步网络。

关于ios - NSURLResponse 在模拟器中很快出现,但在实际设备上它会在一段时间后出现或返回 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30579941/

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