我正在使用一个API,该API会发回HTTP 406的许多不同错误以及自定义消息(原因短语)。它可能看起来像:406 Not Acceptable: User is already logged in
406 Not Acceptable: Missing password field
406 Not Acceptable: Node does not exist.
我可以使用以下命令获取406状态代码和标准“不可接受”字符串:
NSHTTPURLResponse *HTTPResponse = (NSHTTPURLResponse *)response;
NSInteger statusCode = [HTTPResponse statusCode];
[NSHTTPURLResponse localizedStringForStatusCode:HTTPResponse.statusCode];
但是,我确实需要原因短语消息来知道如何处理响应。如何获得它,最好使用标准的iOS SDK?
最佳答案
我真的需要原因短语消息来知道如何处理响应。
然后,API被破坏了。原因短语仅是调试辅助。这并不是要告知客户行为。
从RFC 2616 § 6.1.1:
状态代码供自动机使用,原因短语供人类用户使用。不需要客户检查或显示原因短语。
如果存在关于响应的信息,而状态码不能单独传达该信息,则该信息的适当位置是标头或在响应正文中。原因短语不是放置客户使用所需信息的正确位置。
关于ios - iOS/Obj-c-获取HTTP状态码响应消息(原因短语),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21859791/