AFNetworking网络请求-数据请求(POST/GET)
来源:互联网 发布:淘宝店怎么提升信誉 编辑:程序博客网 时间:2024/05/29 17:43
使用AFNetworking(https://github.com/AFNetworking/AFNetworking)进行post,或get的网络请求服务端数据。
1、添加AFNetworking框架
通过终端使用pod进行管理
2、添加对应framework
SystemConfiguration.frameworkMobileCoreServices.frameworkSecurity.framework
3、使用
3-1、导入头文件
#import "AFNetworking.h"
3-2、封装调用方法
/// 请求样式(post,或get)typedef NS_ENUM(NSInteger, RequestHttpType){ /// 请求样式-post RequestHttpTypePOST = 1, /// 请求样式-get RequestHttpTypeGET = 2,};
/** * 网络请求(区分POST、GET) * * @param url API接口url * @param dict API请求参数 * @param type API请求类型(POST、或GET) * @param complete 请求结果回调 * * @return NSURLSessionDataTask(便于后续操作处理,如取消请求) */+ (NSURLSessionDataTask *)requestWithUrl:(NSString *)url paramtes:(NSDictionary *)dict type:(RequestHttpType)type complete:(void (^)(id responseObject))complete{ // 网络异常判断 开始修改时,判断网络情况 BOOL isBadNet = [AFNetworkReachabilityManager sharedManager].isReachable; NSLog(@"当前网络状态:%@", (isBadNet ? @"不可用" : @"可用")); if (isBadNet) { NSLog("网络断了哦,请检查网络再试"); if (complete) { complete(nil); } return nil; } // 状态栏显示网络加载样式 [UIApplication sharedApplication].networkActivityIndicatorVisible = YES; // 请求地址 NSString *serverHost = @“192.168.12.22”; NSString *requestUrl = [NSString stringWithFormat:@"%@%@", serverHost, ((url && 0 != url.length) ? url : @"")]; // 请求参数 NSDictionary *requestParameters = dict; // 请求类型POST/GET NSString *requestType = (RequestHttpTypePOST == type ? @"POST" : @"GET"); NSLog(@"\n request\n url=%@\n para=%@\n type=%@", requestUrl, requestParameters, requestType); // 可变请求 NSMutableURLRequest *request = [[AFHTTPRequestSerializer serializer] requestWithMethod:requestType URLString:requestUrl parameters:requestParameters error:nil]; NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration]; AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration]; NSURLSessionDataTask *dataTask = [manager dataTaskWithRequest:request completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) { NSLog(@"\n result\n class=%@\n responseObject=%@", [responseObject class], responseObject); // 状态栏隐藏网络加载样式 [UIApplication sharedApplication].networkActivityIndicatorVisible = NO; if (complete) { complete(responseObject); } }]; // 开始请求 [dataTask resume];// [dataTask cancel]; return dataTask;}
3-3、使用示例
NSString *url = @"http://op.juhe.cn/onebox/weather/query”;[AFNetwork requestWithUrl:url paramtes:nil type:RequestHttpTypeGET complete:^(id responseObject) {NSLog(“responseObject(class = %@) = %@”, [responseObject class], responseObject);}];
4、使用注意事项
4-1、AFNetworking集成了 reachability 网络监测功能
// 是否有网BOOL isReachable = [AFNetworkReachabilityManager sharedManager].isReachable;// 是否WIFI网络BOOL isReachableViaWiFi = [AFNetworkReachabilityManager sharedManager].isReachableViaWiFi;// 是否WWAN网络BOOL isReachableViaWWAN = [AFNetworkReachabilityManager sharedManager].isReachableViaWWAN;
4-2、网络请求的开始,与取消
// 创建网络请求NSString *requestUrl = [NSString stringWithFormat:@"%@%@", kServerHost, ((url && 0 != url.length) ? url : @"")];NSDictionary *requestParameters = dict;NSString *requestType = (RequestHttpTypePOST == type ? @"POST" : @"GET");NSMutableURLRequest *request = [[AFHTTPRequestSerializer serializer] requestWithMethod:requestType URLString:requestUrl parameters:requestParameters error:nil];NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];NSURLSessionDataTask *dataTask = [manager dataTaskWithRequest:request completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) {}];// 开始网络请求[dataTask resume];// 取消网络请求[dataTask cancel];
0 0
- AFNetworking网络请求-数据请求(POST/GET)
- AFNetworking(get)请求数据,(post)上传图片
- AFNetworking(get)请求数据,(post)上传图片
- AFNetworking(get)请求数据,(post)上传图片
- MKNetworkKit:AFNetworking(数据请求get:post)
- iOS AFNetworking请求数据(get/post)
- AFNetworking get和post请求
- AFNETWorking GET(POST)请求失败
- AFNetworking get和post请求
- AFNetworking的POST 、GET请求
- AFNetworking的网络请求(POST GET XML JSON以及其他类型的返回数据)和网络转态监听
- AFNetworking get请求与 post 请求操作
- iOS 网络请求(POST/GET) 系统、AFNetworking,MKNetwork
- iOS网络笔记--AFNetWorking发送get和post请求
- 网络请求(get&&post)
- 网络请求(get Post)
- HttpClient(GET、POST)请求网络数据
- 数据请求get post
- laravel 模型删除及软删除相关实现
- 设计模式学习笔记(一):策略模式
- 实现网站(网页)跳转且可隐藏跳转后网址的代码
- Android开发中各分辨率图片的参考尺寸
- bootcss 通过css全局样式将html设置为html5文档样式
- AFNetworking网络请求-数据请求(POST/GET)
- joup完美抓取非登录网页并引用其样式文件
- Kruskal最小生成树算法
- hdu1680 Cheesy Chess--BFS & 三维标记数组的探讨(待改进)
- CodeForces 15D Map (RMQ)
- Kefa and Company
- fzu 2144 Shooting Game 区间覆盖贪心
- pat 1115 Counting Nodes in a BST (30)
- Android studio乱码O