iOS中AFNetworking的简单使用

原创
2015/12/06 21:59
阅读数 7.7K

写了这么多博客,一直没记起来写AFNetworking框架的使用,经过@踩尾巴的妖精的提醒才发现,现在整理点简单的例子:

GET:

    // 1.获得请求管理者
    AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];
    
    // 2.封装请求参数
    NSMutableDictionary *params = [NSMutableDictionary dictionary];
    params[@"userId"] = [appDefault objectForKey:@"userId"];
    params[@"IMSI"] = _IMSI.text;
    params[@"nickName"] = _nickName.text;
    params[@"phoneNumber"] = _phoneNumber.text;
    
    NSString *url = [ServiceInfo stringByAppendingString:@"http://103.238.80.57:8080/Vietnam/Application/bindingDevice"];
    
    // 3.发送GET请求
    [mgr GET:url parameters:params
    success:^(AFHTTPRequestOperation *operation, id responseObject) {
         NSLog(@"%@",responseObject);
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
         NSLog(@"%@",error);
    }];

POST:

// 1.获得请求管理者
    AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];
    
    // 2.封装请求参数
    NSMutableDictionary *params = [NSMutableDictionary dictionary];
    params[@"userId"] = [appDefault objectForKey:@"userId"];
    params[@"IMSI"] = _IMSI.text;
    params[@"nickName"] = _nickName.text;
    params[@"phoneNumber"] = _phoneNumber.text;
    
    NSString *url = [ServiceInfo stringByAppendingString:@"http://103.238.80.57:8080/Vietnam/Application/bindingDevice"];
    
    // 3.发送GET请求
    [mgr POST:url parameters:params
    success:^(AFHTTPRequestOperation *operation, id responseObject) {
         NSLog(@"%@",responseObject);
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
         NSLog(@"%@",error);
    }];

值得注意的是,AFNetworking默认是使用JSON格式发送和响应返回来的数据的,如果返回来的数据不是JSON,就需要设置一下请求管理者,下面请看代码:

// 1.获得请求管理者
    AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];
    
    // 因为传递过去和接收回来的数据都不是json类型的,所以在这里要设置为AFHTTPRequestSerializer和AFHTTPResponseSerializer
    mgr.requestSerializer = [AFHTTPRequestSerializer serializer];// 请求
    mgr.responseSerializer = [AFHTTPResponseSerializer serializer];// 响应
    
    // 2.封装请求参数
    NSMutableDictionary *params = [NSMutableDictionary dictionary];
    params[@"userId"] = [appDefault objectForKey:@"userId"];
    params[@"IMSI"] = _IMSI.text;
    params[@"nickName"] = _nickName.text;
    params[@"phoneNumber"] = _phoneNumber.text;
    
    NSString *url = [ServiceInfo stringByAppendingString:@"http://103.238.80.57:8080/Vietnam/Application/bindingDevice"];
    
    // 3.发送GET请求
    [mgr GET:url parameters:params
     success:^(AFHTTPRequestOperation *operation, id responseObject) {
            // 转码,如果返回的数据不是JSON,这里必须要转码
            NSString *string = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];

            NSLog(@"%@",string);
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
            NSLog(@"%@",error);
    }];




展开阅读全文
打赏
0
5 收藏
分享
加载中

引用来自“Tian_Zhou”的评论

大神,能不能将你封装的afn贴出来啊,这样看不清楚是怎么判断的,而且如果要是有delete和put应该怎么写啊?前面不变,后面mgr DELETE:url parameters:params
success:^(AFHTTPRequestOperation *operation, id responseObject) {
// 转码,如果返回的数据不是JSON,这里必须要转码
NSString *string = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];

NSLog(@"%@",string);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"%@",error);
}];如此这般改一下吗?

引用来自“别寒”的评论

发送请求现在只分get方式和post方式,其他的类型用不着了,如果你做过web开发你就知道,用得着的只有get和post方式,这两种方式的区别你可以在网上查一下get和post方式的区别
可是老大定好了,要加上put和delete,所以我才抓瞎啊!
2015/12/31 11:04
回复
举报
别寒博主

引用来自“Tian_Zhou”的评论

大神,能不能将你封装的afn贴出来啊,这样看不清楚是怎么判断的,而且如果要是有delete和put应该怎么写啊?前面不变,后面mgr DELETE:url parameters:params
success:^(AFHTTPRequestOperation *operation, id responseObject) {
// 转码,如果返回的数据不是JSON,这里必须要转码
NSString *string = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];

NSLog(@"%@",string);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"%@",error);
}];如此这般改一下吗?
发送请求现在只分get方式和post方式,其他的类型用不着了,如果你做过web开发你就知道,用得着的只有get和post方式,这两种方式的区别你可以在网上查一下get和post方式的区别
2015/12/30 13:55
回复
举报
大神,能不能将你封装的afn贴出来啊,这样看不清楚是怎么判断的,而且如果要是有delete和put应该怎么写啊?前面不变,后面mgr DELETE:url parameters:params
success:^(AFHTTPRequestOperation *operation, id responseObject) {
// 转码,如果返回的数据不是JSON,这里必须要转码
NSString *string = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];

NSLog(@"%@",string);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"%@",error);
}];如此这般改一下吗?
2015/12/30 11:52
回复
举报
更多评论
打赏
3 评论
5 收藏
0
分享
返回顶部
顶部