iOS 网络

AFNetworking

2016-03-15  本文已影响99人  CoderJackieYip

AFHTTPRequestOperationManager底层包装的是NSURLConnection

/** GET **/
// 1. 获取HTTP请求操作的Manager
AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];
// 2. 创建参数字典
NSDictionary *params = @{@"username" : @"JackieYip",@"pwd" : @"345"};
// 3. 发送GET请求
[mgr GET:@"http://120.25.226.186:32812/login" parameter:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
  // 4. 回调获取响应数据
  // responseObject不是NSURLResponse *对象,而是JSON对象(JSON字典或者JSON数组)或NSXMLParser对象,或既不是JSON也不是XML的文件数据等其他对象
  NSLog(@"请求成功--%@", [responseObject class]); //请求成功--_NSCFDicionary
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
}];
//
/** POST **/ 
// 只需将上例GET程序中的 “3.发送GET请求” 中“GET”改为“POST”即可,方法如下:
[mgr POST:@"..." parameter:params success:^(...){...} failure:^(...){...}];

AFHTTPSessionManager底层包装的是NSURLSesion

  • GET & POST (与AFHTTPRequestOperationManager的实现方式相似,只是回调参数不一样)

/** GET **/
// 1. 获取HTTP会话的Manager
AFHTTPSessionManager *mgr = [AFHTTPSessionManager manager];
// 2. 创建参数字典
NSDictionary *params = @{@"username" : @"JackieYip",@"pwd" : @"345"};
// 3. 发送GET请求
[mgr GET:@"http://120.25.226.186:32812/login" parameter:params success:^(NSURLSessionDataTask *task, id responseObject) {
// 4. 回调获取响应数据
// responseObject不是NSURLResponse *对象,而是JSON对象(JSON字典或者JSON数组)或NSXMLParser对象,或既不是JSON也不是XML的文件数据等其他对象
NSLog(@"请求成功--%@", [responseObject class]); //请求成功--_NSCFDicionary
} failure:^(NSURLSessionDataTask task, NSError error) {
}];
//
/
POST **/
// 只需将上例GET程序中的 “3.发送GET请求” 中“GET”改为“POST”即可,方法如下:
[mgr POST:@"..." parameter:params success:^(...){...} failure:^(...){...}];

TODO ...

TODO ...

TODO ...

  • 默认是JSON序列化器,将返回数据以JSON进行解析,解析成NSObject对象
  • 修改方法:(如使用AFHTTPSessionManager)
// 将响应序列化器改为JSON序列化器
[[AFHTTPSessionManager manager].responseSerializer = [AFJSONResponseSerializer serializer];
// 将响应序列化器改为XML序列化器
[[AFHTTPSessionManager manager].responseSerializer = [AFXMLParserResponseSerializer serializer];
// 将响应序列化器改为HTTP序列化器(如需返回的数据是文件,该序列化器直接返回服务器给的数据,不作任何解析,即数据仍是二进制数据,NSData数据)
[[AFHTTPSessionManager manager].responseSerializer = [AFHTTPResponseSerializer serializer];
上一篇 下一篇

猜你喜欢

热点阅读