zigeeb 与lora 网络安全

AFN

一、什么是AFN

  • 全称是AFNetworking,是对NSURLConnection的一层封装
  • 虽然运行效率没有ASI高,但是使用比ASI简单
  • 在iOS开发中,使用比较广泛
  • AFN的github地址

二、AFN结构

  • NSURLConnection
  • AFURLConnectionOperation
  • AFHTTPRequestOperation
  • AFHTTPRequestOperationManager(封装了常用的 HTTP 方法)
  • 属性
  • baseURL :AFN建议开发者针对 AFHTTPRequestOperationManager 自定义个一个单例子类,设置 baseURL, 所有的网络访问,都只使用相对路径即可
  • requestSerializer :请求数据格式/默认是二进制的 HTTP
  • responseSerializer :响应的数据格式/默认是 JSON 格式
  • operationQueue
  • reachabilityManager :网络连接管理器
  • 方法
  • manager :方便创建管理器的类方法
  • HTTPRequestOperationWithRequest :在访问服务器时,如果要告诉服务器一些附加信息,都需要在 Request 中设置
  • GET
  • POST
  • NSURLSession
  • AFURLSessionManager
  • AFHTTPSessionManager(封装了常用的 HTTP 方法)
  • GET
  • POST
  • UIKit + AFNetworking 分类
  • NSProgress :利用KVO
  • 半自动的序列化&反序列化的功能
  • AFURLRequestSerialization :请求的数据格式/默认是二进制的
  • AFURLResponseSerialization :响应的数据格式/默认是JSON格式
  • 附加功能
  • 安全策略
  • HTTPS
  • AFSecurityPolicy
  • 网络检测
  • 对苹果的网络连接检测做了一个封装
  • AFNetworkReachabilityManager

三、AFN基本使用

1.AFHTTPSessionManager
  • 是AFN中最重要的对象之一
  • 封装了HTTP请求的常见处理
  • GET\POST请求
  • 解析服务器的响应数据
创建AFHTTPSessionManager
AFHTTPSessionManager *mgr = [AFHTTPSessionManager manager];
AFHTTPSessionManager *mgr = [AFHTTPSessionManager manager];
    AFHTTPSessionManager的GET\POST请求
    // GET请求
    /*
         http://120.25.226.186:32812/login?username=520it&pwd=520it
         第一个参数: 请求的地址  http://120.25.226.186:32812/login
         第二个参数: 请求的参数  username=520it&pwd=520it
         第三个参数: 请求成功的回调
         第四个参数: 请求失败的回调
         只要利用AFN发送请求, 如果服务器返回的是JSON数据, 那么AFN会自动将JSON转会成OC对象返回给我们
         */
    - (NSURLSessionDataTask *)GET:(NSString *)URLString parameters:(id)parameters success:(void (^)(NSURLSessionDataTask *task, id responseObject))success failure:(void (^)(NSURLSessionDataTask *task, NSError *error))failure // POST请求 - (NSURLSessionDataTask *)POST:(NSString *)URLString parameters:(id)parameters success:(void (^)(NSURLSessionDataTask *task, id responseObject))success failure:(void (^)(NSURLSessionDataTask *task, NSError *error))failure
    // GET请求
    /*
         http://120.25.226.186:32812/login?username=520it&pwd=520it
         第一个参数: 请求的地址  http://120.25.226.186:32812/login
         第二个参数: 请求的参数  username=520it&pwd=520it
         第三个参数: 请求成功的回调
         第四个参数: 请求失败的回调
         只要利用AFN发送请求, 如果服务器返回的是JSON数据, 那么AFN会自动将JSON转会成OC对象返回给我们
         */
    - (NSURLSessionDataTask *)GET:(NSString *)URLString parameters:(id)parameters success:(void (^)(NSURLSessionDataTask *task, id responseObject))success failure:(void (^)(NSURLSessionDataTask *task, NSError *error))failure // POST请求 - (NSURLSessionDataTask *)POST:(NSString *)URLString parameters:(id)parameters success:(void (^)(NSURLSessionDataTask *task, id responseObject))success failure:(void (^)(NSURLSessionDataTask *task, NSError *error))failure
      代码示例
      // GET
      - (void)get2
      {
          // 1.创建AFN管理者
          AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
      
          // 2.利用AFN管理者发送请求 NSDictionary *params = @{ @"username" : @"520it", @"pwd" : @"520it" }; [manager GET:@"http://120.25.226.186:32812/login" parameters:params success:^(NSURLSessionDataTask *task, id responseObject) { NSLog(@"请求成功---%@", responseObject); } failure:^(NSURLSessionDataTask *task, NSError *error) { NSLog(@"请求失败---%@", error); }]; } // POST - (void)post2 { // 1.创建AFN管理者 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; // 2.利用AFN管理者发送请求 NSDictionary *params = @{ @"username" : @"520it", @"pwd" : @"520it" }; [manager POST:@"http://120.25.226.186:32812/login" parameters:params success:^(NSURLSessionDataTask *task, id responseObject) { NSLog(@"请求成功---%@", responseObject); } failure:^(NSURLSessionDataTask *task, NSError *error) { NSLog(@"请求失败---%@", error); }]; }
      // GET
      - (void)get2
      {
          // 1.创建AFN管理者
          AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
      
          // 2.利用AFN管理者发送请求 NSDictionary *params = @{ @"username" : @"520it", @"pwd" : @"520it" }; [manager GET:@"http://120.25.226.186:32812/login" parameters:params success:^(NSURLSessionDataTask *task, id responseObject) { NSLog(@"请求成功---%@", responseObject); } failure:^(NSURLSessionDataTask *task, NSError *error) { NSLog(@"请求失败---%@", error); }]; } // POST - (void)post2 { /
      评论
      添加红包

      请填写红包祝福语或标题

      红包个数最小为10个

      红包金额最低5元

      当前余额3.43前往充值 >
      需支付:10.00
      成就一亿技术人!
      领取后你会自动成为博主和红包主的粉丝 规则
      hope_wisdom
      发出的红包
      实付
      使用余额支付
      点击重新获取
      扫码支付
      钱包余额 0

      抵扣说明:

      1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
      2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

      余额充值