AFNetworking网络请求失败
2016-01-23 17:12
555 查看
之前iOS开发一直用ASIHTTPRequest进行网络请求,但是这个框架很长时间已经不更新了。我了解到目前很多应用都在使用AFNetworking,今天尝试了一下,发现了不少问题。
目前已经是AFNetworking 3.0了,很多类已经被废弃了,我使用如下代码进行网络请求测试。
结果出现了如下的错误信息。
这是因为苹果引入了ATS特征,要求应用内网络请求采用HTTPS协议,这样主要是为了安全。但是目前接口采用HTTP协议,很难做出修改,解决方案如下。
在Info.plist中添加NSAppTransportSecurity,类型为Dictionary。
在NSAppTransportSecurity下添加NSAllowsArbitraryLoads,类型为Boolean,值设为YES。
继续进行测试,又发现了如下问题。
这个问题是因为AFNetworking默认的接收类型不包括”text/html”,需要到“AFURLResponseSerialization.m”中修改为以下代码,即添加其中缺少的@”text/html”。
目前已经是AFNetworking 3.0了,很多类已经被废弃了,我使用如下代码进行网络请求测试。
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; [manager GET:@"your url" parameters:nil progress:nil success:^(NSURLSessionTask *task, id responseObject) { NSLog(@"response:%@", responseObject); } failure:^(NSURLSessionTask *task, NSError *error) { NSLog(@"error:%@", error); }];
结果出现了如下的错误信息。
App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.
这是因为苹果引入了ATS特征,要求应用内网络请求采用HTTPS协议,这样主要是为了安全。但是目前接口采用HTTP协议,很难做出修改,解决方案如下。
在Info.plist中添加NSAppTransportSecurity,类型为Dictionary。
在NSAppTransportSecurity下添加NSAllowsArbitraryLoads,类型为Boolean,值设为YES。
继续进行测试,又发现了如下问题。
error:Error Domain=com.alamofire.error.serialization.response Code=-1016 "Request failed: unacceptable content-type: text/html"
这个问题是因为AFNetworking默认的接收类型不包括”text/html”,需要到“AFURLResponseSerialization.m”中修改为以下代码,即添加其中缺少的@”text/html”。
self.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/html", @"text/json", @"text/javascript", nil];
相关文章推荐
- ASP.NET Core 1.0 部署 HTTPS (.NET Framework 4.5.1)
- android 网络请求库的比较
- HttpPost 传输Json数据并解析
- 关于TCP粘包和半包的处理
- 一种后台网络服务器模型
- java.net.UnknownHostException:www.xxx.com httpclient
- HTTP协议细节
- Mac OS 下监听/拦截 TCP/UDP 连接
- Java网络编程
- afinal 网络差自动重连
- 网络层吞吐性能测试方法简介
- android高级框架xUtils之HttpUtils
- Http状态码
- 2016太原网络营销师郭文军如何编辑往网站内容文章?
- 08 网络编程
- 看书理解的tcp握手
- 深度学习(二十八)基于多尺度深度网络的单幅图像深度估计-NIPS 2014
- Android开发请求网络方式详解
- 网络监听器
- Android 一个改善的okHttp封装库