在iOS中解析JSON时是不是可以检索描述以及状态码

Posted

技术标签:

【中文标题】在iOS中解析JSON时是不是可以检索描述以及状态码【英文标题】:Is it possible to retrieve the description along with the statuscode when JSON parsing in iOS在iOS中解析JSON时是否可以检索描述以及状态码 【发布时间】:2013-03-13 07:03:25 【问题描述】:

在我的 iPhone 应用程序中,我正在使用 JSON 进行一些 Web 服务调用。在返回数据中,我得到一个状态码(200、404 等),以及它们正在发送的消息。

这是我在 Rest 客户端中得到的结果:

Status Code: 401 Invalid Access token
Cache-Control: private
Connection: Keep-Alive, Proxy-Support
Content-Length: 0
Date: Wed, 13 Mar 2013 06:37:26 GMT
Proxy-Support: Session-Based-Authentication
Server: Microsoft-IIS/7.5
Via: 1.1 WIN-JO3AMACI965
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET

在此,我想收到“无效访问令牌”消息以及状态码 401。有可能吗?

提前致谢。

【问题讨论】:

你用什么来做你的网络 - NSURLConnection,或者像RestKitAFNetworking这样的库? 【参考方案1】:

假设您使用NSURLConnection 发送请求,您可以从响应中获取状态码:

NSError* error = nil;
NSHTTPURLResponse* response = nil;

NSData* data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
int statusCode = response.statusCode;
NSString* statusText = [NSHTTPURLResponse localizedStringForStatusCode:statusCode];

如果您不使用同步请求,则可以使用here 中描述的委托方法。

希望有所帮助。

【讨论】:

我按照您所说的进行了尝试,但是我收到的消息与问题中显示的不符。我收到了一些其他消息,例如“无错误”、“服务器错误”等。根据问题,我需要收到“无效访问令牌”消息。这是在服务器上创建的自定义消息。 NSHTTPURLResponse 似乎没有提供您所要求的内容。如果您可以控制服务器,您是否考虑过将状态文本放在自定义标题中?那样的话,也许你可以通过response.allHeaderFields 得到它。 我也不太确定这是否可能,我只是想确认一下。服务器团队告诉我要找回它,这就是我问的原因。无论如何谢谢:)

以上是关于在iOS中解析JSON时是不是可以检索描述以及状态码的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 中解析 JSON 与解析 XML

Swift 中的 JSON 解析(iOS)

iOS 9 JSON 解析循环

解析 JSON 并在 Listview 中显示检索/获取 URL 服务器“无数据”

检查 JSON 文件中是不是存在数组 - iOS

解析 JSON 数据时无法将字符串附加到数组