美文网首页
AFNetworking 的使用

AFNetworking 的使用

作者: 一个人的思考 | 来源:发表于2017-05-08 09:14 被阅读313次

自从 iOS7之后,apple 推出NSURLSession,并推荐开发者使用。所以基于NSURLConnection的请求只做简单了解就可以了

  • 基于NSURLConnection- 简单的 HTTP 请求
  • get 请求
    // 1.创建网络管理者
    // AFHTTPRequestOperationManager基于NSURLConnection
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];

    // 2.利用网络管理者发送get请求
    /*
     http://120.25.226.186:32812/login?username=520it&pwd=520it
     第一个参数: 请求的地址  http://www.baidu.com
     第二个参数: 请求的参数
     第三个参数: 请求成功的回调
     第四个参数: 请求失败的回调
     只要利用AFN发送请求, 如果服务器返回的是JSON数据, 那么AFN会自动将JSON转会成OC对象返回给我们
     */
    NSDictionary *parameters = @{
                                @"username":@"zhangsan",
                                @"pwd":@"zhangsan"
                                };
    [manager GET:@"http://www.baidu.com" parameters:parameters success:^ void(AFHTTPRequestOperation * operation, id responseObject) {
        NSLog(@"请求成功 %@", [responseObject class]);
    } failure:^ void(AFHTTPRequestOperation * operation, NSError * error) {
        NSLog(@"请求失败 %@", error);
    }];

  • post 请求
    // 1.创建网络管理者
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    // 2.利用网络管理者发送post请求
    NSDictionary *parameters = @{
                                @"username":@"zhangsan",
                                @"pwd":@"zhangsan"
                                };
    [manager POST:@"http://www.baidu.com" parameters:parameters success:^ void(AFHTTPRequestOperation * operation, id responseObject) {
        NSLog(@"请求成功 %@", [responseObject class]);
    } failure:^ void(AFHTTPRequestOperation * operation, NSError * error) {
        NSLog(@"请求失败 %@", error);
    }];

  • 重点:基于NSURLSession
  • get请求
    // 1.创建网络管理者
    // AFHTTPSessionManager 基于NSURLSession
    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
    // 2.利用网络管理者发送get请求
    /*
     __nullable 可以为nil/ null
     __nonnull 代表不能为nil,null
     */
    NSDictionary *parameters = @{
                                 @"username":@"zhangsan",
                                 @"pwd":@"zhangsan"
                                 };
    [manager GET:@"http://www.baidu.com" parameters:parameters success:^ void(NSURLSessionDataTask * task, id responseObject) {
        NSLog(@"请求成功 %@", [responseObject class]);
    } failure:^ void(NSURLSessionDataTask * operation, NSError * error) {
        NSLog(@"请求失败 %@", error);
    }];

  • post
    // 1.创建网络管理者
    // AFHTTPSessionManager 基于NSURLSession
    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
    // 2.利用网络管理者发送get请求
    NSDictionary *parameters = @{
                                 @"username":@"zhangsan",
                                 @"pwd":@"zhangsan"
                                 };
    [manager POST:@"http://www.baidu.com" parameters:parameters success:^ void(NSURLSessionDataTask * task, id responseObject) {
        NSLog(@"请求成功 %@", [responseObject class]);
    } failure:^ void(NSURLSessionDataTask * operation, NSError * error) {
        NSLog(@"请求失败 %@", error);
    }];

  • 注意: AFN 默认通过 JSON 来解析服务器返回的数据

  • 通过设置序列化可以更改解析形式
  • 一般有以下三种:
    • [AFJSONResponseSerializer serializer]; //默认就是 json 解析,可以不用设置
    • [AFHTTPResponseSerializer serializer];//直接使用服务器返回的数据,不做任何解析
    • [AFXMLParserResponseSerializer serializer];//服务器返回 XML 数据,通过 XML 解析
    manager.responseSerializer = [AFJSONResponseSerializer serializer];

相关文章

网友评论

      本文标题:AFNetworking 的使用

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