码迷,mamicode.com
首页 > Web开发 > 详细

使用AFNetworking框架时,出现不可接受内容类型错误的解决方法

时间:2016-07-24 16:21:09      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:

在使用AFNetworking 3.0时出现了这个问题:

Error Domain=com.alamofire.error.serialization.response Code=-1016 "Request failed: unacceptable content-type: text/plain"

 

以下为代码展示

 1 Error Domain=com.alamofire.error.serialization.response Code=-1016 "Request failed: unacceptable content-type: text/plain"  

或者

 1 Error Domain=com.alamofire.error.serialization.response Code=-1016 "Request failed: unacceptable content-type: text/html"  

 

出现这个错误的原因是服务器返回给客户端的内容类型是 text/plain 或者是 text/html 格式,AFNetworking无法接受这些内容类型。

无法接受什么类型,就设置或添加这个类型。这里以 text/plain 为例。

 

解决办法1:设置AFN默认解析类型

 1 AFHTTPSessionManager *mgr = [AFHTTPSessionManager manager]; 

 1 mgr.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/plain", nil]; 

此方法的缺点是,设置 text/plain 为接受类型以后,就不能完成对 text/json 等其他类型的解析。

 

解决办法2:将 text/plain 和 text/html 格式加入到AFN的源文件AFURLResponseSerialization.m中。

修改文件第228行

1 self.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript", nil];

1 self.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"text/plain", nil];

或为

1 self.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"text/html", nil];

 

添加一个无法接受的内容类型就可以解决。

 

使用AFNetworking框架时,出现不可接受内容类型错误的解决方法

标签:

原文地址:http://www.cnblogs.com/wangtianyi/p/5700888.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!