2011-11-14 91 views
4

我正在使用web服務,並且由於驗證原因某些內容失敗時,錯誤消息位於StatusDescription中。我需要一種方法來獲取並顯示給用戶,但我在NSHTTPURLResponse上看到的所有內容都是StatusCode,並且是將狀態代碼轉換爲標準錯誤消息的一種方式。如何獲取NSHTTPURLResponse的狀態描述

無論數據錯誤,Web服務器總是返回一個500狀態碼,所以我無法從代碼中推斷出問題。

回答

0

下面是狀態的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]); 
} 
7

,您可以獲取一個標準的錯誤信息。你應該爲此使用Core Foundation類。最後提供了這樣的能力:

CFStringRef myStatusLine = CFHTTPMessageCopyResponseStatusLine(myResponse);

0

我最終切換到使用AFNetworking由於本地化說明沒有返回由服務器提供的錯誤信息。

+1

你是如何通過AFNetworking管理的?目前有相同的問題,但我*使用AFNetworking。 – SpacyRicochet