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

在使用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];

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

时间: 2024-08-17 19:08:44

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

Camtasia录制时出现video codec open failed错误的解决方法

今天在网上找了一段制作H5的背景音乐,因无法下载,想着可以用Camtasia录制下来再进行音频和视频分离. 立马行动,打开Camtasia9.0点击录制,选择好"只录制系统音频",当点击"rec"铵钮时,跳出一个对话框,提示 "Recorder中发生错误:video codec open failed" . 经过一番原因的查找终于解决,只须在官网下载三个decoder安装上就可以了.在此分享给遇到此类问题的小伙伴们. 官网:https://www

python3.5.4安装时老是弹出api-ms-win-crt-runtime-|1-1-0.dll错误的解决方法

本来python安装的方法简单,只要安装前勾选添加到环境变量,然后继续安装就能成功,但是有些电脑安装总是会出这样或那样的问题. 我的电脑win7 64位的系统,之前系统是32位的,后面重装了一次系统,一开始的时候安装了一个32位的python3.5.4,安装完后提示api-ms-win-crt-process-l1-1-0.dll错误,于是在网 上下载了一个并注册,然鹅并没有解决问题. 因为我公司的电脑也是64位的,用的也是这个安装包,一下就安装好了,有点想不通,于是在python官网上下载了一

springmvc 接受特殊类型字段的处理方法

springmvc接受前台传入的数据时如果该字段类型无法被封装(如Date),则会出现400 Bad Request错误,解决方法如下. 1.在需要处理的字段前加上注解: @DateTimeFormat( pattern = "yyyy-MM-dd" ) 然后在项目中引入joda-time.jar包,最后在在 SpringMVC 配置 xml 文件中中加入配置: <mvc:annotation-driven /> .这一句配置是一种简写,其实是给 spring 容 器中注入

查询复杂对象用respsbody转换成json串时,mybatis的延迟加载报错的解决方法

在查询数据时,如果你查询的是复杂的对象需要通过respsbody转换成json串时,mybatis用的延迟加载会报以下错误: 解决方法:第一步在RequestMapping(参数中加入 produces =  "application/json")表示将功能处理方法将生产json格式的数据,此时根据请求头中的Accept进行匹配,如请求头"Accept:application/json"时即可匹配.第二步:在实体类中前面加上注解@JsonInclude(JsonIn

执行游戏时出现0xc000007b错误的解决方法

如图,这个错误使无数玩家烦恼. 出现这个错误,可能是硬件的问题,也可能是软件的问题.可是,因为硬件引起该问题的概率非常小,而且除了更换硬件之外没有更好的解决方法,因此本文将具体介绍怎样通过软件解决此问题,这也是大家最关心的. 大致介绍一下这个错误是怎样发生的.这个错误的本意是提示内存错误,可是通常情况下并非内存存在问题,而是因为软件的问题产生了这个错误.到底是什么软件的问题呢?答案是DirectX,而且多数情况下是DirectX 9.0的问题. 或许大家会问了:我玩的游戏都有DirextX 11

MVC.Net:对MVC5部署时出现403.14错误的解决方法

当我们部署MVC5到IIS 7的时候,有时会出现403.14的错误,如下图: 对于这个错误的解决方法就是在应用程序的web.config的system.webServer节点中加入这一句: <modules runAllManagedModulesForAllRequests="true"></modules> 如下例: <system.webServer> <!-- 此行必须有,否则IIS7无法启动 --> <modules ru

UEditor 解决拖拽视频元素改变视频尺寸时,无法保存视频尺寸问题的解决方法

UEditor虽然强大,但是bug还是蛮多的.比如插入视频元素后,拖拽视频去缩放尺寸,编辑器并没有将实际的尺寸保存下来.当你点击HTML按钮查看源代码时,width和height还是原来的值,再次点击此按钮回到正常状态,缩略图又回到原来的大小了. 翻源代码翻了蛮久,终于把这个问题解决了.问题就出在插入视频后创建视频HTML字符串和HTML字符串与可视化编辑层转化的地方. 当视频上传完成后,创建一个img用于可视化编辑,将默认width和height设置到img的width和height的属性中.

父容器不根据内容自适应高度的解决方法

Div不根据内容自适应高度,我们看下面的代码: <div id="main"> <div id="content"></div> </div> 当Content内容多时,即使main设置了高度100%或auto.在不同浏览器下还是不能完好的自动伸展.内容的高度比较高了,但容器main的高度还是不能撑开. 我们可以通过三种方法来解决这个问题. 一,增加一个清除浮动,让父容器知道高度.请注意,清除浮动的容器中有一个空格.

安装opensips时出现curses.h:31:19: 错误的解决

[[email protected] opensips-1.11.1-tls]# make menuconfigcd menuconfig; make ; cd ..make[1]: Entering directory `/usr/local/opensips-1.11.1-tls/menuconfig'gcc -g -Wall -DMENUCONFIG_CFG_PATH=\"menuconfig/configs/\" -DMENUCONFIG_GEN_PATH=\"etc