我正在使用web服務,並且由於驗證原因某些內容失敗時,錯誤消息位於StatusDescription中。我需要一種方法來獲取並顯示給用戶,但我在NSHTTPURLResponse上看到的所有內容都是StatusCode,並且是將狀態代碼轉換爲標準錯誤消息的一種方式。如何獲取NSHTTPURLResponse的狀態描述
無論數據錯誤,Web服務器總是返回一個500狀態碼,所以我無法從代碼中推斷出問題。
我正在使用web服務,並且由於驗證原因某些內容失敗時,錯誤消息位於StatusDescription中。我需要一種方法來獲取並顯示給用戶,但我在NSHTTPURLResponse上看到的所有內容都是StatusCode,並且是將狀態代碼轉換爲標準錯誤消息的一種方式。如何獲取NSHTTPURLResponse的狀態描述
無論數據錯誤,Web服務器總是返回一個500狀態碼,所以我無法從代碼中推斷出問題。
下面是狀態的NSLog輸出啓動你,你可以看到,代碼進入didFailWithError。雖然沒有辦法讓使用基礎框架,如果你的服務器提供額外的消息有指定響應的原因消息
[NSHTTPURLResponse localizedStringForStatusCode:httpResponse.statusCode];
:
- (void)connection:(NSURLConnection *) connection didFailWithError:(NSError *)error
{
NSLog(@"Connection didFailWithError (connection %p) (code %d) %@ %@ %@",
connection,
[error code],
[error localizedDescription],
[error localizedFailureReason],
[[error userInfo] objectForKey:NSURLErrorFailingURLStringErrorKey]);
}
,您可以獲取一個標準的錯誤信息。你應該爲此使用Core Foundation類。最後提供了這樣的能力:
CFStringRef myStatusLine = CFHTTPMessageCopyResponseStatusLine(myResponse);
我最終切換到使用AFNetworking由於本地化說明沒有返回由服務器提供的錯誤信息。
你是如何通過AFNetworking管理的?目前有相同的問題,但我*使用AFNetworking。 – SpacyRicochet