使用AFNetworking进行序列化

转自:http://blog.csdn.net/chenyufeng1991/article/details/48506171点击打开链接

(1) 请求的网络数据可以进行序列化,然后以二进制的形式输出。实现代码如下:

  1. - (void)viewDidLoad {  
  2.   [super viewDidLoad];  
  3.     
  4.   AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];  
  5.     
  6.     
  7.   //请求的序列化  
  8.   manager.requestSerializer = [AFHTTPRequestSerializer serializer];  
  9.     
  10.   //回复的序列化  
  11.   manager.responseSerializer = [AFHTTPResponseSerializer serializer];  
  12.     
  13.     
  14.     
  15.   // 设置回复内容信息  
  16.   manager.responseSerializer.acceptableContentTypes = [manager.responseSerializer.acceptableContentTypes setByAddingObject:@"text/html"];  
  17.     
  18.   //执行请求;  
  19.   [manager GET:@"http://api.openweathermap.org/data/2.5/forecast/daily?lat=39.907501&lon=116.397232&cnt=10"  
  20.     parameters:nil  
  21.        success:^(AFHTTPRequestOperation *operation, id responseObject) {  
  22.            
  23.          //这里输出的是二进制数据;  
  24.          NSLog(@"%@",responseObject);  
  25.            
  26.            
  27.        }  
  28.        failure:^(AFHTTPRequestOperation *operation, NSError *error) {  
  29.            
  30.        }];  
  31.     
  32.     
  33.     
  34. }  

返回的数据如下:


(2)当然也可以打印出文本:实现代码如下:

  1. - (void)viewDidLoad {  
  2.   [super viewDidLoad];  
  3.     
  4.   AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];  
  5.     
  6.     
  7.   //请求的序列化  
  8.   manager.requestSerializer = [AFHTTPRequestSerializer serializer];  
  9.     
  10.   //回复的序列化  
  11.   manager.responseSerializer = [AFHTTPResponseSerializer serializer];  
  12.     
  13.     
  14.     
  15.   // 设置回复内容信息  
  16.   manager.responseSerializer.acceptableContentTypes = [manager.responseSerializer.acceptableContentTypes setByAddingObject:@"text/html"];  
  17.     
  18.   //执行请求;  
  19.   [manager GET:@"http://api.openweathermap.org/data/2.5/forecast/daily?lat=39.907501&lon=116.397232&cnt=10"  
  20.     parameters:nil  
  21.        success:^(AFHTTPRequestOperation *operation, id responseObject) {  
  22.            
  23.          NSLog(@"%@",[[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding ]);  
  24.            
  25.        }  
  26.        failure:^(AFHTTPRequestOperation *operation, NSError *error) {  
  27.            
  28.        }];  
  29.     
  30.     
  31.     
  32. }  

打印结果如下:


(3)直接使用JSON进行序列化请求。

  1. - (void)viewDidLoad {  
  2.   [super viewDidLoad];  
  3.     
  4.   AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];  
  5.     
  6.     
  7.   //请求的序列化  
  8.   manager.requestSerializer = [AFHTTPRequestSerializer serializer];  
  9.     
  10.   //回复的序列化  
  11.   manager.responseSerializer = [AFJSONResponseSerializer serializer];  
  12.     
  13.     
  14.     
  15.   // 设置回复内容信息  
  16.   manager.responseSerializer.acceptableContentTypes = [manager.responseSerializer.acceptableContentTypes setByAddingObject:@"text/html"];  
  17.     
  18.   //执行请求;  
  19.   [manager GET:@"http://api.openweathermap.org/data/2.5/forecast/daily?lat=39.907501&lon=116.397232&cnt=10"  
  20.     parameters:nil  
  21.        success:^(AFHTTPRequestOperation *operation, id responseObject) {  
  22.            
  23.          //这里输出的是二进制数据;  
  24.          NSLog(@"%@",responseObject);  
  25.            
  26.        }  
  27.        failure:^(AFHTTPRequestOperation *operation, NSError *error) {  
  28.            
  29.        }];  
  30.     
  31.     
  32.     
  33. }  

返回的结果如下:



github主页: https://github.com/chenyufeng1991  。欢迎大家访问!

猜你喜欢

转载自blog.csdn.net/zhh152/article/details/69223117