zoukankan      html  css  js  c++  java
  • 第三方库AFNetwork的作用和用法详解

    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,可能是参数传错了.

     

  • 相关阅读:
    linux截图工具
    Git理论知识补充
    Git基本操作(add,commit的理解)
    VS2017 error CS0234: 命名空间“Microsoft”中不存在类型或命名空间名“Office”问题的一种解决方案
    MFC CFileDialog DoModal()无法弹出窗口,直接返回IDCANCEL
    VS2015 、VS2017 MFC输出日志到控制台窗口
    win10 VMware 关闭虚拟机失败导致再打开时显示连接不上虚拟机的一种解决方法
    c语言之位段
    Adobe Acrobat DC 制作多级书签
    MFC基于对画框工程笔记->更改窗口图标以及生成的.exe图标
  • 原文地址:https://www.cnblogs.com/yuhao309/p/6653380.html
Copyright © 2011-2022 走看看