zoukankan      html  css  js  c++  java
  • ios网络开发 AFNetworking

    一、早前的几个网络框架
    1、ASI框架: HTTP终结者.很牛, 但是有BUG, 已经停止更新.
    2、MKNetworkKit (印度人写的).
    3、AFN一直还在更新.

    AFNetworking的出现:MAC/iOS设计的一套网络框架.(为了简化网络操作)

    *AFN专注与网络数据传输,以及网络中多线程的处理.
     

    二、AFNetworking的使用

    1、AFN特性 :
    *登录传参数时,传递字典即可.(键名为参数名,键值为参数值).
    *自动到子线程中执行,执行完后返回主线程.
    *返回的结果自动序列化为NSDictionary.
     
    2、使用AFN注意 :
    *AFHTTPRequestOperationManager封装了通过HTTP协议与Web应用程序进行通讯的常用方法.(这个实例化的时候不是单例, 因为没有shared字)
    *包括创建请求/响应序列化/网络监控/数据安全.
    *方法等都是以AF开头的.

    3、AFN能做的 (网络中的都涵盖了):
    *GET/POST/PUT/DELETE/HEAD请求.
    *JSON数据解析/Plist数据解析.(不支持XML数据解析)
    *POSTJSON.
    *上传/下载.

    4、使用步骤 : (可参考说明文档)
    1.首先需要实例化一个请求管理器AFHTTPRequestOperationManager.
    2.设置请求的数据格式:默认是二进制.(不是可改)
    *AFHTTPRequestSerializer(二进制)
    *AFJSONRequestSerializer(JSON)
    *AFPropertyListRequestSerializer(Plist)
    3.设置响应的数据格式:默认是JSON.(不是可改)
    *AFHTTPResponseSerializer(二进制)
    *AFJSONResponseSerializer(JSON)
    *AFPropertyListResponseSerializer(Plist)
    *AFXMLParserResponseSerializer(XML)
    *AFImageResponseSerializer(Image)
    *AFCompoundResponseSerializer(组合的)
    4.如果响应者的MIMEType不正确,就要修改acceptableContentTypes.
    5.调用方法,发送响应的请求(GET/POST...).

     

    AFN进行GET、POST请求:

    1   AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    2   manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"];
    3   [manager GET:@"http://www.weather.com.cn/data/sk/101010100.html" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
    4         NSLog(@"JSON: %@", responseObject);
    5  } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    6         NSLog(@"Error: %@", error);
    7  }];

    结果为:

    2014-11-05 17:08:26.219 TestAFNetWorking[27957:70b] JSON: {

        weatherinfo =     {

            Radar = "JC_RADAR_AZ9010_JB";

            SD = "20%";

            WD = "U897fU5357U98ce";

            WS = "2U7ea7";

            WSE = 2;

            city = "U5317U4eac";

            cityid = 101010100;

            isRadar = 1;

            njd = "U6682U65e0U5b9eU51b5";

            qy = 1014;

            temp = 17;

            time = "16:45";

        };

    }

  • 相关阅读:
    用于聚类的信用卡数据
    微信支付 参考
    小程序中 自定义组件的使用
    小程序页面跳转传参
    小程序人脸核身
    ant desgin pro 的项目中 封装的 socket.js
    vscode红色波浪线
    ant desgin pro 的项目中 请求之封装
    小程序的请求 方式封装
    浏览器网页链接打开本地exe客户端程序 及 无法导入,指定文件不是注册脚本.您的注册表编辑器只能导入2进位注册文件
  • 原文地址:https://www.cnblogs.com/guchengfengyun/p/4076871.html
Copyright © 2011-2022 走看看