AFNetworkIng的简单使用

下面是使用AFNetWorking框架,在新浪微博发一条微博和请求豆瓣服务器的电影数据为例,简要说明利用AFNetWorking框架实现网络请求 :

1.导入AFNetWorking框架;

2.在ViewController.m文件进行网络请求;

//POST方式

- (void)POST{
    
    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
    //1.URL


    //2.请求参数
    //access_token=2.00ihO9wBbx1h4Dea60be901dPLdrlB&status=呵呵

  //字典中存放微博的令牌(自己独有的)和发布的内容
    NSDictionary *dic = @{@"access_token":@"2.00ihO9wBbx1h4Dea60be901dPLdrlB",@"status":@"AFHAHAHAHA"};
    
    //设置请求头
    [manager.requestSerializer setValue:@"gzip" forHTTPHeaderField:@"Accept-Encoding"];
    

    //发送网络请求
    [manager POST:@"https://api.weibo.com/2/statuses/update.json" parameters:dic success:^(NSURLSessionDataTask *task, id responseObject) {
        NSLog(@"发送成功");
        
    } failure:^(NSURLSessionDataTask *task, NSError *error) {
        NSLog(@"发送失败");
        
    }];

}

//GET方式请求


- (void)GET{

    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
    
    //1.URL
    NSString *urlString = @"http://api.douban.com/v2/movie/top250";
    
    //2.请求参数
    NSDictionary *dic = @{@"count" : @"2"};
    
    
    //3.设置请求参数的格式
    /**
     &拼接 count=2&..
     JSON格式 {count : 2}
     
     AFHTTPRequestSerializer :&拼装格式
     AFJSONRequestSerializer : JSON数据格式
  

   */
    manager.requestSerializer = [AFJSONRequestSerializer serializer];
    
    //4.设置服务器返回的数据的解析方式(默认以JSON解析)
    /**
     AFHTTPResponseSerializer,不解析
     AFJSONResponseSerializer,JSON解析
     AFXMLParserResponseSerializer,XML解析
     */
    
    //以XML的方式解析数据
    //manager.responseSerializer = [AFXMLParserResponseSerializer serializer];
    //以JSON的方式解析数据
    //manager.responseSerializer = [AFJSONResponseSerializer serializerWithReadingOptions:NSJSONReadingMutableContainers];
    //不解析,返回的是NSData类型
    // manager.responseSerializer = [AFHTTPResponseSerializer serializer];
    
    //发送GET请求
    [manager GET:urlString parameters:dic success:^(NSURLSessionDataTask *task, id responseObject) {
        
        //请求成功以后调用的blcok
        NSLog(@"%@",responseObject);
        
    } failure:^(NSURLSessionDataTask *task, NSError *error) {
        
        //请求失败以后调用的blcok
        
    }];

}

3.注意点:

注意POST和GET的区别,一般情况下,请求网络数据用GET,而发送数据给服务器则需要POST,POST相比与GET更安全.

原文地址:https://www.cnblogs.com/pengsi/p/4846128.html