- 由于做的混合开发,web页面和原生做了深度交互,所有的网络请求都是通过原生发网络请求的交易,请求的交易不走js自带的网络通道。这样就得把服务端响应的请求再塞给web,不管请求成功或则失败的响应都要传过去,这样web方便做下一步处理,因此就要获取网络请求的状态,最近的新项目最低支持的iOS系统是iOS7.0,所以我打算把网络请求通讯库换为最新的NSURLSession。发现之前获取网络请求的状态码不见了,后来各种查资料,找到如下获取, 在此记录一下(包括了获取相应头,相应的状态码)。
- 由于NSURLSessionDataTask属于NSHTTPURLResponse的子类,因此把task强转为NSHTTPURLResponse,然后拿到response就可以拿到一切数据 。
NSHTTPURLResponse *response = (NSHTTPURLResponse *)task.response;
NSInteger statusCode = response.statusCode;
NSDictionary *allHeaders = response.allHeaderFields;