我正在使用Web服务,当出现验证原因导致错误消息出现在StatusDescription中时。我需要一种方法来获取并将其显示给用户,但我在NSHTTPURLResponse上看到的只是StatusCode以及将状态代码转换为标准错误消息的方法。
无论数据错误如何,Web服务器始终返回500状态代码,因此我无法从代码中推断出问题。
答案 0 :(得分:7)
您可以获得类似的标准错误消息:
[NSHTTPURLResponse localizedStringForStatusCode:httpResponse.statusCode];
如果您的服务器在那里提供其他消息,则无法使用Foundation Framework从给定响应中获取原因消息。您应该使用Core Foundation类。最后一个提供了这样的能力:
CFStringRef myStatusLine = CFHTTPMessageCopyResponseStatusLine(myResponse);
答案 1 :(得分:0)
这是一个启动你的状态的NSLog输出,如你所见,代码进入didFailWithError。
- (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]);
}
答案 2 :(得分:0)
由于本地化描述未返回服务器提供的错误消息,因此我最终切换到使用AFNetworking。