我在我的應用程序中添加了一項功能,它將POST請求發送到我的Web服務器。我測試過它,它運行良好。但在某些時候,當我試圖重新運行應用程序時,它就崩潰了。我發現錯誤503表示服務器不可用。我的問題是我該怎麼做才能防止我的應用在我收到此錯誤時崩潰。服務器返回錯誤503
感謝
我在我的應用程序中添加了一項功能,它將POST請求發送到我的Web服務器。我測試過它,它運行良好。但在某些時候,當我試圖重新運行應用程序時,它就崩潰了。我發現錯誤503表示服務器不可用。我的問題是我該怎麼做才能防止我的應用在我收到此錯誤時崩潰。服務器返回錯誤503
感謝
HTTP標準是對此非常清楚:首先是一個4所有的錯誤代碼是客戶端錯誤,從5所有的錯誤代碼是服務器端錯誤。所以當你得到503時,這是HTTP服務器返回給你的客戶端的錯誤,告訴你服務器/服務器有問題,而不是客戶端或你發送的請求。所以我想知道你的客戶端是否真的有任何東西可以防止這個錯誤。如果服務器正確地遵守HTTP標準,則5xx錯誤意味着您必須查看服務器端日誌並找出服務器出了什麼問題,然後解決此問題(在服務器上)。如果您發送的請求有任何問題,服務器應返回一個4xx錯誤代碼。
如果您使用NSURLConnection API來執行您的請求(您應該這樣做),那麼您的代理應該會收到- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
調用。
在這種方法中,您可以查詢NSURLResponse的狀態代碼,並根據它的情況採取相應的行動。
例子:
狀態200 = OK,去一個頭,你需要做的 狀態503 =服務器不可用的東西 - 優雅地失敗,取消該請求後自己清理。然後您可以再試一次。
客戶端無法阻止錯誤發生,但它可以在收到503時正常恢復而不會崩潰。看我的答案。 – Jasarien 2010-01-15 10:32:14