我用同步方法在ASIFormDataRequest
中调用一个API,并且每次都返回超时错误,记录了此错误`Error Domain = ASIHTTPRequestErrorDomain Code = 2“请求超时”超时秒数设置为10s,有时它显示给我10s之前出现此错误。
但是最奇怪的是,当我更改为异步时,它开始正常工作。我知道,同步会阻塞所有事物,直到它得到响应为止,而异步不会阻塞,但是还有什么其他方法可以使两者互不相同,以及在我的情况下为什么会发生这种情况。下面是我在做什么的代码。请建议我或指导我为什么会这样。希望得到答复,谢谢。
NSString *finalStrUrl = [NSString stringWithFormat:@"SomeAPI"];
ASIFormDataRequest *formRequest = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:finalStrUrl]];
[formRequest setTimeOutSeconds:10];
[formRequest setRequestMethod:@"GET"];
[formRequest setAllowCompressedResponse:NO];
[formRequest setDefaultResponseEncoding:NSUTF8StringEncoding];
如果__IPHONE_OS_VERSION_MAX_ALLOWED> = __IPHONE_4_0
[formRequest setShouldContinueWhenAppEntersBackground:YES];
万一
[formRequest setDelegate:self];
[formRequest startAsynchronous];
注意:这一切都发生在蜂窝连接中。
最佳答案
尝试使用以下代码更改超时间隔。这段代码会将超时设置为05秒:
[request setTimeOutSeconds:05]
[request setNumberOfTimesToRetryOnTimeout:2];
在此页面上获取更多信息http://allseeing-i.com/ASIHTTPRequest/How-to-use
关于ios - 在ASIFormDataRequest iOS开发人员中获取异步响应和同步调用超时,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26333651/