如何获取NSHTTPURLResponse的状态描述

时间:2011-11-14 18:09:04

标签: iphone objective-c

我正在使用Web服务,当出现验证原因导致错误消息出现在StatusDescription中时。我需要一种方法来获取并将其显示给用户,但我在NSHTTPURLResponse上看到的只是StatusCode以及将状态代码转换为标准错误消息的方法。

无论数据错误如何,Web服务器始终返回500状态代码,因此我无法从代码中推断出问题。

3 个答案:

答案 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。