1

我正在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];

注意:这一切都发生在蜂窝连接中。

4

1 回答 1

1

尝试使用以下代码更改超时间隔。此代码将超时设置为 05 秒:

[request setTimeOutSeconds:05]


[request setNumberOfTimesToRetryOnTimeout:2];

在此页面上获取更多信息http://allseeing-i.com/ASIHTTPRequest/How-to-use

于 2014-10-13T05:56:42.720 回答