AFNetworking

作者: 为之_iOS | 来源:发表于2015-08-08 14:31 被阅读1588次

    框架学习

    cmd+shift+j 跳转当前文件
    1.获取框架
    2.查看官方文档
    3.运行演示程序
    4.建立学习分支
    5.编写测试程序

    - (void)postJSON {
    
         AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];
    
        mgr.requestSerializer = [AFJSONRequestSerializer serializer];
        
        mgr.responseSerializer = [AFHTTPResponseSerializer serializer];
        NSDictionary *params = @{@"name": @"xiaohua", @"age": @18};
    
        [mgr POST:@"http://localhost/upload/postjson.php" parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
    
            NSLog(@"%@", [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding]);
    
        } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
            NSLog(@"%@", error);
        }];
    }```
    
    
    
    /**
     请求的数据格式(一般都是 `HTTP` 二进制数据,RESTful设计风格要求 POST JSON)
     self.requestSerializer = [AFHTTPRequestSerializer serializer];
     
     响应的数据格式(JSON 是使用最广的数据格式,没有之一!)
     默认就是 JSON,能够自动实现 JSON 的反序列化
     self.responseSerializer = [AFJSONResponseSerializer serializer];
     
     <AFURLRequestSerialization>    请求的数据格式
         AFHTTPRequestSerializer            HTTP,二进制,默认的
         AFJSONRequestSerializer            JSON
         AFPropertyListRequestSerializer    PList
     
     <AFURLResponseSerialization>   响应的数据格式
         AFHTTPResponseSerializer           二进制
         AFJSONResponseSerializer           JSON,默认的
         AFXMLParserResponseSerializer      XML `解析器`
         AFXMLDocumentResponseSerializer (Mac OS X) iPhone不能直接使用,需要用GData-XML
         AFPropertyListResponseSerializer   PList
         AFImageResponseSerializer          Image,AFN同样提供了异步加载网络图片的功能
                                            但是:不支持 `GIF`,只有 `SDWebImage` 支持
         AFCompoundResponseSerializer       `组合`
     
     * 常见数据格式的小结
     
     1. 发送二进制数据,返回 JSON
        AFN 的默认格式
     2. 发送二进制数据,返回 XML
        1> SAX 解析
        mgr.responseSerializer = [AFXMLParserResponseSerializer serializer];
     
        2> DOM 解析(对节点增加或者删除) 二进制数据格式
        mgr.responseSerializer = [AFHTTPResponseSerializer serializer];
     
        [[GDataXMLDocument alloc] initWithData:data error:NULL];
     
     3. 发送 JSON 修改请求的数据格式
        AFJSONRequestSerializer
     
     4. 其他:Image,用 SDWebImage 居多!
     
     ** 提示:
     
     status code: 200
     
     说明网络请求成功,`二进制数据`已经正确传输到本地
     数据
    感谢@daoge

    相关文章

      网友评论

      • 梁森的简书:mgr.requestSerializer = [AFJSONRequestSerializer serializer]; 如果不设置这行代码呢? 默认的这个属性是什么?
      • 天下无贼:受用了 :pray:
      • 20ace076a09b:谢谢,正好解决我的问题。

      本文标题:AFNetworking

      本文链接:https://www.haomeiwen.com/subject/nabbqttx.html