在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
,或者像RestKit
或AFNetworking
这样的库?
【参考方案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时是不是可以检索描述以及状态码的主要内容,如果未能解决你的问题,请参考以下文章