如何快速从 HTTP Get 获取状态码?

Posted

技术标签:

【中文标题】如何快速从 HTTP Get 获取状态码?【英文标题】:How to get the status code from HTTP Get in swift? 【发布时间】:2015-01-08 07:56:53 【问题描述】:

我已尝试使用以下代码在 ios Swift 中实现 HTTP Get。

NSURLConnection.sendAsynchronousRequest(request, queue: queue, completionHandler: (response: NSURLResponse!, data: NSData!,error: NSError!) -> Void in

            var jsonResult: NSDictionary = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: nil) as NSDictionary
            println("response = \(response)")
        )

成功并显示以下响应:

response = <NSHTTPURLResponse: 0x155xxxxx>  URL: http://xxx.xx.xxx.xxx:38080/getid/user-wiced1  
 status code: 200, headers 
    "Content-Length" = 111;
    "Content-Type" = "application/json; charset=UTF-8";
    Date = "Thu, 08 Jan 2015 07:31:21 GMT";
    Server = "spray-can/1.3.2-20140909";
 

如何从NSURLResponse 获取status code

提前致谢。

【问题讨论】:

类似问题:***.com/questions/26634539/…. 【参考方案1】:

NSURLResponse 没有状态码,但NSHTTPURLResponse 有。所以投吧:

let httpResponse = response as NSHTTPURLResponse
httpResponse.statusCode

【讨论】:

是不是把response的类型改成NSHTTPURLResponse,得到statusCode?​​span> 你不会通过强制转换来“改变”类型。正如您的打印显示类型已经是NSHTTPURLResponse,但您正在使用它的超类接口NSURLResponse。您需要通过转换访问状态码来更改界面。

以上是关于如何快速从 HTTP Get 获取状态码?的主要内容,如果未能解决你的问题,请参考以下文章

获取状态码 http.get 响应 angular2

如何从 WinHttp 请求中获取 HTTP 状态码?

如何才能获取到http的响应状态码

如何从 Qt QWebEngineView 获取 HTTP 状态码?

HTTP协议----请求方法和状态码

如何从 AS3 NetStream 对象获取 HTTP 状态码?