2010-11-24 47 views
4

我在我的iPhone應用程序中使用ASIHTTPRequest框架來管理HTTP通信。我按照他們在項目主頁中給出的例子發送異步請求。我們必須實現兩個回調,一個用於requestFinish,另一個用於requestFailed。ASIHttpRequest發送一個零的狀態碼。沒有到達服務器

但是,由iPhone發送的60%的時間請求以「requestFinish」回調方法結束,並提供有效的HTTP狀態碼。但有時它會發送到「requestFailed」回調,並且狀態碼變爲'0',這很混亂。 我的調查顯示,互聯網連接正常,並且我將請求發送到正確的URL,但是在服務器日誌中找不到日誌消息。 那麼爲什麼請求會隨機丟棄呢?有沒有人遇到這種類型的問題。會很有幫助。

謝謝

回答

0

除了phooze的建議,還有一些可以啓用的ASIHTTPRequestConfig.h的日誌記錄,可以提供關於正在發生的事情的線索。

+0

感謝您的回覆。是的,我使用NSError來記錄ASIHTTPRequest調用,並且我監視了從TCP數據包級別到達服務器端的呼叫。所以我能看到的最奇怪的問題是請求數據包到達了服務器,並且服務器發送了200個狀態碼與消息體但是請求失敗從iPhone調用並且狀態碼是零。所以我們清楚地看到服務器發送了200個,但是在iPhone端如何將它變爲0 – chathuram 2010-11-24 15:16:50

5

您是否正在查看ASIHTTPRequest對象的狀態碼?該代碼只是一個HTTP響應代碼 - 如果您沒有得到響應,那麼應該是零。

取而代之,您想查看代理失敗回調爲您提供的NSError對象。

我會使用類似:

NSLog(@"%@",[error localizedErrorDescription]); 

要打印出來的日誌中的錯誤是什麼。當然,「錯誤」是方法簽名中變量的名稱 - 您應該仔細檢查一下,我認爲這就是默認值。

1

[ASHTTPRequest initialize],我改變

[sharedQueue setMaxConcurrentOperationCount:4] 

[sharedQueue setMaxConcurrentOperationCount:10] 

這爲我工作,但我不知道爲什麼。我們找到this

相關問題