最近做的项目中由于其他两个安卓开发成员都是用AsyncHttp用的比较熟练,就选用了AsyncHttp作为网络框架。。然后坑就来了
由于要做一个带进度条的下载任务,所以用到了BinaryHttpResponseHandler ,结果一直报Content-Type(..)not allowed!的错误,然后找了下才发现是设置mAllowedContentTypes 这个参数的错误,要看上面(..)的内容是什么,然后把它补上
public static String[] allowedContentTypes = new String[]{"application/octet-stream", "image/png", "image/jpeg","image/bmp", "application/json;charset=UTF-8", "text/html;charset=UTF-8","text/plain;charset=UTF-8",";charset=UTF-8","image/jpeg;charset=UTF-8","application/octet-stream;charset=UTF-8"};上面就是我补的一大串。。。然后如下图把它构造这个函数的时候加进去就好
BinaryHttpResponseHandler(allowedContentTypes) {
然后更叼的事情又出现了,出现了以下错误。。
"None, or more than one, Content-Type Header found!"
原来这个BinaryHttpResponseHandler 在默认接到的数据是只有一个header的。。由于那个下载文件是我们的后台编程实现
的,他之前做的这些都不需要展现下载进度,所以在header里面没有total数据长度,然后在后面把这个total长度加进去时,header增加了。。迫不得已,自己写了个MyBinaryHttpResponseHandler 去自己去筛选header,并把这个当header长度不为1就返回的这段给咔嚓了。。