2014-10-13 29 views
1

我使用同步方法調用ASIFormDataRequest中的API,並且它每次都返回超時錯誤,記錄此錯誤「Error Domain = ASIHTTPRequestErrorDomain Code = 2」請求超時「超時秒數設置爲10秒,有時在10秒之前向我顯示此錯誤。 但最奇怪的是,當我改變爲異步它開始工作正常。我知道Synchronous阻塞每一件事,直到它得到響應,Asynchronous不會阻塞,但是有什麼其他方法可以使它們不同,以及爲什麼會發生這種情況。下面是我正在做的事情的代碼。請建議我或指導我爲什麼會發生這種情況。提前尋找答覆。在ASIFormDataRequest iOS dev中獲取對同步調用的異步和超時響應

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]; 

ENDIF
[formRequest setDelegate:self]; 
    [formRequest startAsynchronous]; 

注意:這在蜂窩連接所有發生。

+0

注意[ASIHTTPRequest(http://allseeing-i.com/ASIHTTPRequest/)無更長的支持,也不建議用於新工作。 – zaph

+0

@Zaph謝謝,你是在談論iOS 7還是8? – josh

+0

這支持iOS 3.0及以上版本。 – josh

回答

1

嘗試使用以下代碼更改超時間隔。此代碼將設置超時05秒時:

[request setTimeOutSeconds:05] 


[request setNumberOfTimesToRetryOnTimeout:2]; 

在該網頁上的更多信息http://allseeing-i.com/ASIHTTPRequest/How-to-use

+0

謝謝,所以我應該使用相同的異步或同步行,你建議? – josh

+0

[request startSynchronous]; – Sport

+0

好吧,我嘗試過,但同樣的結果,抱歉沒有提到這一切都發生在蜂窩連接上,我知道這可能與蜂窩無關,但它只發生在蜂窩上。 – josh