我正在ASIFormDataRequest
使用同步方法调用 API,并且每次都返回我超时错误,记录此错误 `Error Domain=ASIHTTPRequestErrorDomain Code=2 "The request timed out" 超时秒数设置为 10 秒,有时它会告诉我这个10 秒前的错误。但最奇怪的是,当我更改为 Asnychronous 时,它开始正常工作。我知道同步会阻塞所有事情,直到它得到响应,而异步不会阻塞,但是还有什么其他方法可以使它们都不同,以及为什么在我的情况下会发生这种情况。下面是我在做什么的代码。请建议我或指导我为什么会发生这种情况。期待回复提前谢谢。
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];
注意:这一切都发生在蜂窝连接中。