zoukankan      html  css  js  c++  java
  • iOS之使用AFN进行序列化处理(5)

    使用AFN进行序列化处理

    1.AFN它内部默认把服务器响应的数据当做json来进行解析,所以如果服务器返回给我的不是JSON数据那么请求报错,这个时候需要设置AFN对响应信息的解析方式。AFN提供了三种解析响应信息的方式

    分别是:

    • 1)AFXMLParserResponseSerializer----XML
      1. AFHTTPResponseSerializer---------默认二进制响应数据
    • 3)AFJSONResponseSerializer---------JSON

    2.还有一种情况就是服务器返回给我们的数据格式不太一致(开发者工具Content-Type:text/xml),那么这种情况也有可能请求不成功。

    解决方法:

    • 1) 直接在源代码中修改,添加相应的Content-Type
    • 2) 拿到这个属性,添加到它的集合中

    3.相关代码

    -(void)srializer
    {
        //1.创建请求管理者,内部基于NSURLSession
        AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
    
        /* 知识点1:设置AFN采用什么样的方式来解析服务器返回的数据*/
    
        //如果返回的是XML,那么告诉AFN,响应的时候使用XML的方式解析
        manager.responseSerializer = [AFXMLParserResponseSerializer serializer];
    
        //如果返回的就是二进制数据,那么采用默认二进制的方式来解析数据
        //manager.responseSerializer = [AFHTTPResponseSerializer serializer];
    
        //采用JSON的方式来解析数据
        //manager.responseSerializer = [AFJSONResponseSerializer serializer];
    
        /*知识点2 告诉AFN,再序列化服务器返回的数据的时候,支持此种类型
        [AFJSONResponseSerializer serializer].acceptableContentTypes = [NSSet setWithObject:@"text/xml"];
    
        //2.把所有的请求参数通过字典的方式来装载,GET方法内部会自动把所有的键值对取出以&符号拼接并最后用?符号连接在请求路径后面
        NSDictionary *dict = @{
                               @"username":@"223",
                               @"pwd":@"ewr",
                               @"type":@"XML"
                               };
    
        //3.发送GET请求
        [manager GET:@"http://120.25.226.186:32812/login" parameters:dict success:^(NSURLSessionDataTask * _Nonnull task, id  _Nonnull responseObject) {
    
            //4.请求成功的回调block
            NSLog(@"%@",[responseObject class]);
        } failure:^(NSURLSessionDataTask * _Nonnull task, NSError * _Nonnull error) {
    
            //5.请求失败的回调,可以打印error的值查看错误信息
            NSLog(@"%@",error);
        }];
    }
    
  • 相关阅读:
    用js模拟struts2的多action调用
    24点经典算法
    操作系统的页面置换C++算法:OPT FIFO LRU CLOCK 计算缺页率
    java假设模拟请求重新启动路由器(网络爬虫经常使用),还有java怎样下载图片
    extern用法总结!
    sizeof,终极无惑(上)
    web 富文本编辑器总结
    ubuntu12.04 安装配置jdk1.7
    前端学习——使用Ajax方式POST JSON数据包
    AccountManager使用教程
  • 原文地址:https://www.cnblogs.com/chenjianjian/p/5393949.html
Copyright © 2011-2022 走看看