如何获取NSHTTPURLResponse的状态描述

Sco*_*tch 5 iphone objective-c

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

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

Ale*_*kov 7

您可以获得类似的标准错误消息:

[NSHTTPURLResponse localizedStringForStatusCode:httpResponse.statusCode];
Run Code Online (Sandbox Code Playgroud)

如果您的服务器在那里提供其他消息,则无法使用Foundation Framework从给定响应中获取原因消息.您应该使用Core Foundation类.最后提供这样的能力:

CFStringRef myStatusLine = CFHTTPMessageCopyResponseStatusLine(myResponse);


Sni*_*ips 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]);
}
Run Code Online (Sandbox Code Playgroud)