这个封装类包含了GET请求,POST请求,上传图片,上传多张图片,下载图片,判断网络是否可用等功能。
#import <Foundation/Foundation.h> @interface HttpUtil : NSObject typedef NS_ENUM(NSInteger, NetworkReachabilityStatus) { NetworkReachabilityStatusUnknown = -1, NetworkReachabilityStatusNotReachable = 0, NetworkReachabilityStatusReachableViaWWAN = 1, NetworkReachabilityStatusReachableViaWiFi = 2, }; // GET请求 + (void)getWithURLString:(NSString *)URLString parameters:(id)parameters success:(void (^)(id))success failure:(void (^)(NSError * error))failure; // POST请求 + (void)postWithURLString:(NSString *)URLString parameters:(id)parameters success:(void (^)(id))success failure:(void (^)(NSError *))failure; // 上传图片 + (void)uploadWithURLString:(NSString *)URLString parameters:(id)parameters uploadData:(NSData *)uploadData uploadName:(NSString *)uploadName success:(void (^)())success failure:(void (^)(NSError *))failure; // 上传多张图片 + (void)uploadMostImageWithURLString:(NSString *)URLString parameters:(id)parameters uploadDatas:(NSArray *)uploadDatas uploadName:(NSString *)uploadName success:(void (^)())success failure:(void (^)(NSError *))failure; +(void)DownLoadWithUrlString:(NSString *)URLString parameters:(id)parameters progress:(void (^)(id))progress success:(void(^)(NSURL *filePath))success; +(void)setReachabilityStatusChangeBlock:(void(^)(NetworkReachabilityStatus status))block; +(void)stopMonitoring; +(Boolean)JudgeNetisConnect; @end
#import "HttpUtil.h" #import "AFNetworking.h" @implementation HttpUtil #pragma mark -- GET请求 -- + (void)getWithURLString:(NSString *)URLString parameters:(id)parameters success:(void (^)(id))success failure:(void (^)(NSError * error))failure { AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; manager.requestSerializer.timeoutInterval = 10; manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json",@"text/json", @"text/plain", @"text/html", nil]; [manager GET:URLString parameters:parameters progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { if (responseObject) { success(responseObject); } } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { if (error) { failure(error); } }]; } #pragma mark -- POST请求 -- + (void)postWithURLString:(NSString *)URLString parameters:(id)parameters success:(void (^)(id))success failure:(void (^)(NSError *))failure { AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; // manager.requestSerializer.HTTPMethodsEncodingParametersInURI = [NSSet setWithArray:@[@"POST", @"GET", @"HEAD"]]; manager.requestSerializer.timeoutInterval = 10; manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json",@"text/json", @"text/plain", @"text/html", nil]; [manager POST:URLString parameters:parameters progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { if (success) { success(responseObject); } } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { if (failure) { failure(error); } }]; } #pragma mark -- 上传图片 -- + (void)uploadWithURLString:(NSString *)URLString parameters:(id)parameters uploadData:(NSData *)uploadData uploadName:(NSString *)uploadName success:(void (^)())success failure:(void (^)(NSError *))failure { AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json",@"text/json", @"text/plain", @"text/html", nil]; [manager POST:URLString parameters:parameters constructingBodyWithBlock:^(id< AFMultipartFormData > _Nonnull formData) { [formData appendPartWithFileData:uploadData name:uploadName fileName:uploadName mimeType:@"image/png"]; } progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { if (success) { success(responseObject); } } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { if (failure) { failure(error); } }]; } // 上传多张图片 uploadDatas 图片的data集合 // uploadName 文件名称 最好以xxx1 xxx2 表示 image1 image2 + (void)uploadMostImageWithURLString:(NSString *)URLString parameters:(id)parameters uploadDatas:(NSArray *)uploadDatas uploadName:(NSString *)uploadName success:(void (^)())success failure:(void (^)(NSError *))failure{ AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json",@"text/json", @"text/plain", @"text/html", nil]; [manager POST:URLString parameters:parameters constructingBodyWithBlock:^(id< AFMultipartFormData > _Nonnull formData) { for (int i=0; uploadDatas.count; i++) { NSString *imageName = [NSString stringWithFormat:@"%@[%i]", uploadName, i]; [formData appendPartWithFileData:uploadDatas[i] name:uploadName fileName:imageName mimeType:@"image/png"]; } } progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { if (success) { success(responseObject); } } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { if (failure) { failure(error); } }]; } +(void)DownLoadWithUrlString:(NSString *)URLString parameters:(id)parameters progress:(void (^)(id))progress success:(void(^)(NSURL *filePath))success { //1.创建管理者对象 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; URLString=[self DownLoadUrlWithParams:URLString WithNSDictionaryParams:parameters]; NSLog(@"DownLoadFileUrl %@",URLString); NSURL *url = [NSURL URLWithString:URLString]; //3.创建请求对象 NSURLRequest *request = [NSURLRequest requestWithURL:url]; //下载任务 NSURLSessionDownloadTask *task = [manager downloadTaskWithRequest:request progress:^(NSProgress * _Nonnull downloadProgress) { if (progress) { progress(downloadProgress); } } destination:^NSURL * _Nonnull(NSURL * _Nonnull targetPath, NSURLResponse * _Nonnull response) { // //下载地址 // //设置下载路径,通过沙盒获取缓存地址,最后返回NSURL对象 NSString *filePath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)lastObject]; filePath=[filePath stringByAppendingPathComponent:@"DFU.zip"]; return [NSURL fileURLWithPath:filePath]; } completionHandler:^(NSURLResponse * _Nonnull response, NSURL * _Nullable filePath, NSError * _Nullable error) { if (success) { success(filePath); } }]; //开始启动任务 [task resume]; } //因为下载的方法不能够直接填写dict参数进去,所以只有使用这种方法拼接参数进去 +(NSString *)DownLoadUrlWithParams:(NSString*)url WithNSDictionaryParams:(NSDictionary *)params{ // 初始化参数变量 NSString *body=@""; // 快速遍历参数数组 NSString* appendUrl; for(id key in params) { NSLog(@"key :%@ value :%@", key, [params objectForKey:key]); body = [body stringByAppendingString:key]; body = [body stringByAppendingString:@"="]; body = [body stringByAppendingString:[params objectForKey:key]]; body = [body stringByAppendingString:@"&"]; } // 处理多余的&以及返回含参url if (body.length > 1) { // 去掉末尾的& body = [body substringToIndex:body.length - 1]; // 返回含参url } appendUrl=[url stringByAppendingString:body]; return appendUrl; } +(void)setReachabilityStatusChangeBlock:(void(^)(NetworkReachabilityStatus status))block{ //监测网络状态 AFNetworkReachabilityManager *netMan = [AFNetworkReachabilityManager sharedManager]; [netMan setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) { switch (status) { // 未知网络 case AFNetworkReachabilityStatusUnknown: if (block) { block(NetworkReachabilityStatusUnknown); } break; // 没有网络 case AFNetworkReachabilityStatusNotReachable: if (block) { block(NetworkReachabilityStatusNotReachable); } break; // 手机自带网络 case AFNetworkReachabilityStatusReachableViaWWAN: if (block) { block(NetworkReachabilityStatusReachableViaWWAN); } break; // WIFI case AFNetworkReachabilityStatusReachableViaWiFi: if (block) { block(NetworkReachabilityStatusReachableViaWiFi); } break; } }]; [netMan startMonitoring];} +(void)stopMonitoring{ AFNetworkReachabilityManager *netMan = [AFNetworkReachabilityManager sharedManager]; [netMan stopMonitoring]; } +(Boolean)JudgeNetisConnect{ NSString *urlstr=WuCheBaseUrl; NSURLRequest *request=[NSURLRequest requestWithURL:[NSURL URLWithString:urlstr] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:5.0]; NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; if (response!=NULL) { return YES; } return NO; } @end
以上这篇iOS AFNetworking各种功能封装类代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。
本文向大家介绍PHP封装的数据库保存session功能类,包括了PHP封装的数据库保存session功能类的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP封装的数据库保存session功能类。分享给大家供大家参考,具体如下: PHP用数据库保存session类: 更多关于PHP相关内容感兴趣的读者可查看本站专题:《php字符串(string)用法总结》、《PHP数组(Array)操作
本文向大家介绍php mysql 封装类实例代码,包括了php mysql 封装类实例代码的使用技巧和注意事项,需要的朋友参考一下 废话不多说了,具体代码如下所示: 以上所述是小编给大家介绍的php mysql 封装类实例代码,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的,在此也非常感谢大家对呐喊教程网站的支持!
饼图的分片大小通过 metrics 聚合定义。这个维度可以支持以下聚合: Count count 聚合返回选中索引模式中元素的原始计数。 Sum sum 聚合返回一个数值字段的总和。从下拉菜单选择一个字段。 Unique Count cardinality 聚合返回一个字段的去重数据值。从下拉菜单选择一个字段。 buckets 聚合指明从你的数据集中将要检索什么信息。 在你选定一个 buckets
metric 可视化为你选择的聚合显示一个单独的数字: Count count 聚合返回选中索引模式中元素的原始计数。 Average 这个聚合返回一个数值字段的 average 。从下拉菜单选择一个字段。 Sum sum 聚合返回一个数值字段的总和。从下拉菜单选择一个字段。 Min min 聚合返回一个数值字段的最小值。从下拉菜单选择一个字段。 Max max 聚合返回一个数值字段的最大值。从下
Markdown 挂件是一个存放 GitHub 风格 Markdown 内容的文本框。Kibana 会渲染你输入的文本,然后在仪表盘上显示渲染结果。你可以点击 Help 连接跳转到 help page 查看 GitHub 风格 Markdown 的说明。点击 Apply 在预览框查看渲染效果,或者 Discard 回退成上一个版本的内容。
这个图的 Y 轴是数值维度。该维度有以下聚合可用: Count count 聚合返回选中索引模式中元素的原始计数。 Average 这个聚合返回一个数值字段的 average 。从下拉菜单选择一个字段。 Sum sum 聚合返回一个数值字段的总和。从下拉菜单选择一个字段。 Min min 聚合返回一个数值字段的最小值。从下拉菜单选择一个字段。 Max max 聚合返回一个数值字段的最大值。从下拉菜
Count count 聚合返回选中索引模式中元素的原始计数。 Average 这个聚合返回一个数值字段的 average 。从下拉菜单选择一个字段。 Sum sum 聚合返回一个数值字段的总和。从下拉菜单选择一个字段。 Min min 聚合返回一个数值字段的最小值。从下拉菜单选择一个字段。 Max max 聚合返回一个数值字段的最大值。从下拉菜单选择一个字段。 Unique Count card
这个图的 Y 轴是数值维度。该维度有以下聚合可用: Count count 聚合返回选中索引模式中元素的原始计数。 Average 这个聚合返回一个数值字段的 average 。从下拉菜单选择一个字段。 Sum sum 聚合返回一个数值字段的总和。从下拉菜单选择一个字段。 Min min 聚合返回一个数值字段的最小值。从下拉菜单选择一个字段。 Max max 聚合返回一个数值字段的最大值。从下拉菜