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

第三方库AFNetwork的作用和用法详解

时间:2017-03-31 20:48:11      阅读:298      评论:0      收藏:0      [点我收藏+]

标签:语句   配置   指定   afn   目录   修改   ble   dex   html   

1》默认提交请求的数据是二进制的,返回格式是JSON 

     请求格式(manager.requestSerializer)

     AFHTTPRequestSerializer          二进制格式(NSData)

     AFJSONRequestSerializer          JSON

     AFPropertyListRequestSerializer  PList(是一种特殊的XML,解析起来相对容易)

     

     返回格式(manager.responseSerializer)

     AFHTTPResponseSerializer           二进制格式(NSData)

     AFJSONResponseSerializer           JSON

     AFXMLParserResponseSerializer      XML,只能返回XMLParser,还需要自己通过代理方法解析

     AFXMLDocumentResponseSerializer (Mac OS X)

     AFPropertyListResponseSerializer   PList

     AFImageResponseSerializer          Image

     AFCompoundResponseSerializer       组合

需要修改AFNetworking可接收的Content-Type,前往AFNetworking源代码目录找到AFURLResponseSerialization.m文件将里面的代码:self.acceptableContentTypes =[NSSetsetWithObjects:@"application/json",@"text/json",@"text/JavaScript",nil];

修改为:self.acceptableContentTypes =[NSSetsetWithObjects:@"application/json",@"text/json",@"text/javascript",@"text/html”,@"text/plain”,nil];

2》AFNetwork在请求时报错code=-1016 和 3840

在进行网络请求时出现-1016,是因为只支持text/jsonapplication/jsontext/javascript,可以添加text/html 

在进行网络请求时出现3840添加如下语句:

manger.requestSerializer = [AFHTTPRequestSerializer serializer];

manger.responseSerializer = [AFHTTPResponseSerializer serializer];

在进行网络请求时出现-1011,添加如下语句:manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"]; 

3》Server那邊的人沒把head內的 metacontent格式指定好?

[AFJSONRequestOperation addAcceptableContentTypes:[NSSet setWithObject:@"text/html"]]; 

4》NSUnderlyingError = Error Domain=com.alamofire.error.serialization.response Code=-1016 "Request failed: unacceptable content-type: application/soap+xml" 

application/json,application/text都只是设置返回的http报文里面header的内容,最终怎么处理还是看前端javascript,你js里面收到数据后JSON.parse()就是json数据(当然现在Ajax框架比如jQuery都自动parse了),不处理就是纯文本,本质上没什么差别

5》默认响应的格式是JSON,若返回的不是一个JSON文本,可修改成二进制或者XML

注意:responseSerializer使用之前一定要new一次,不然配置的东西无效

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

 manager.responseSerializer=[AFJSONResponseSerializer serializer];

6》AFN在请求时候,老是出现unacceptable content-type: text/html或者 text/plain

在进行网络请求时出现-1016,可能是参数传错了.

 

第三方库AFNetwork的作用和用法详解

标签:语句   配置   指定   afn   目录   修改   ble   dex   html   

原文地址:http://www.cnblogs.com/yuhao309/p/6653380.html

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