httpHelper请求辅助类
#import <Foundation/Foundation.h>
#import "AFNetworking.h"
@interface AFHttpClient : NSObject
DEFINE_SINGLETON_FOR_HEADER(AFHttpClient);
/**
* 判断网络是否正常
*
* @return Bool YES 表示正常
*/
- (BOOL)isOnline;
/**
* 停止请求
*/
- (void)cancelAllRequest;
/**
* Get 请求
*
* @param path 路径
* @param parameters 参数
* @param success success block
* @param failure failure block
*/
- (AFHTTPRequestOperation *)getHttpRequest:(NSString *)path
parameter:(NSDictionary *)parameters
success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure;
/**
* Get 请求
*
* @param url 路径
* @param parameter 参数
* @param completion completion block
*/
- (AFHTTPRequestOperation *)getHttpRequest:(NSString *)path
paramter:(NSDictionary *)parameters
completion:(void (^)(BOOL success))completion;
/**
* Post 请求
*
* @param path 路径
* @param parameters 参数
* @param success success block
* @param failure failure block
*/
- (AFHTTPRequestOperation*)postHttpRequest:(NSString *)path
parameter:(NSDictionary *)parameters
success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure;
/**
* Post 请求 发送json数据到服务端
*
* @param path 路径
* @param parameters 参数
* @param success success description
* @param postHttpRequest postHttpRequest description
* @param path path description
* @param parameters parameters description
* @param completion completion description
*/
- (AFHTTPRequestOperation*)postJsonHttpRequest:(NSString *)path
parameter:(NSDictionary *)parameters
success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure;
/**
* Post 请求
*
* @param url 路径
* @param parameter 参数
* @param completion completion block
*/
- (AFHTTPRequestOperation*)postHttpRequest:(NSString *)path
paramter:(NSDictionary *)parameters
completion:(void (^)(BOOL success))completion;
/**
* 上传图片
*
* @param uploadPath 上传路径
* @param imagePath 文件路径
* @param parameters 参数
* @param success success block
* @param failure failure block
*/
- (AFHTTPRequestOperation *)uploadImage:(NSString *)uploadPath
imagePath:(NSString *)imagePath
parameter:(NSDictionary *)parameters
success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure;
/**
* 上传图片
*
* @param url 上传路径
* @param path 文件本地路径
* @param name 文件名
* @param parameter 参数
* @param completion block
*/
- (AFHTTPRequestOperation *)uploadImage:(NSString *)url
path:(NSString *)path
name:(NSString *)name
paramter:(NSDictionary *)parameter
completion:(void (^)(BOOL success))completion;
/**
* 上传图片
*
* @param url 上传路径
* @param imageData 图像数据
* @param imageName 图像名称
* @param fileName 文件名
* @param parameter 参数
* @param success success block
* @param failure failure block
*/
- (AFHTTPRequestOperation *)uploadImage:(NSString *)url
imageData:(NSData *)imageData
imageName:(NSString *)imageName
fileName:(NSString*)fileName
paramter:(NSDictionary *)parameter
success:(void (^)(AFHTTPRequestOperation *operation,id responseObject))success
failure:(void (^)(AFHTTPRequestOperation *operation,NSError *error))failure;
/**
* 下载图片保存文件
*
* @param url 地址
* @param path 文件名
* @param block block
*/
- (AFHTTPRequestOperation *)downloadImage:(NSString*)url
saveToFile:(NSString *)path
completion:(void (^)(bool success))block;
@end
.m文件
#import "AFHttpClient.h"
#import "AFNetworking.h"
#import "YQZTools.h"
#import "YQZSetting.h"
#import "Reachability.h"
#import "YQZViewController.h"
@interface AFHttpClient()
@property (nonatomic, strong) AFHTTPRequestOperationManager *currentRequest;
@end
@implementation AFHttpClient
DEFINE_SINGLETON_FOR_CLASS(AFHttpClient);
- (AFHTTPRequestOperationManager *)currentRequest
{
if (!_currentRequest) {
self.currentRequest = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:[NSURL URLWithString:[YQZTools getProxy]]];
}
return _currentRequest;
}
- (BOOL)isOnline
{
return [[Reachability reachabilityForInternetConnection] currentReachabilityStatus] != NotReachable;
}
#pragma mark - 请求 -
- (void)cancelAllRequest
{
[self.currentRequest.operationQueue cancelAllOperations];
}
- (AFHTTPRequestOperation *)getHttpRequest:(NSString *)path
parameter:(NSDictionary *)parameters
success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure
{
if(NotReachable == [[Reachability reachabilityForInternetConnection] currentReachabilityStatus]){
if (![[YQZSetting sharedInstance] getAlertViewShow]) {
[YQZTools alert:@"提示" message:@"您的网络不给力哦"];
failure(nil,nil);
}
return nil;
}
[self showRequestLogWithUrl:path parameter:parameters];
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
return [manager GET:path
parameters:parameters
success:^(AFHTTPRequestOperation *operation, id responseObject) {
[self showSuccessLog:responseObject];
int code = [[responseObject objectForKey:@"resultCode"] intValue];
if (code == 399) //系统错误
{
failure(operation, nil);
return;
}
if (success)
{
success(operation, responseObject);
}
}
failure:^(AFHTTPRequestOperation *operation, NSError *error) {
[self showErrorLog:error];
if (failure) {
failure(operation, error);
}
}];
}
- (AFHTTPRequestOperation *)getHttpRequest:(NSString *)path
paramter:(NSDictionary *)parameters
completion:(void (^)(BOOL success))completion
{
[self showRequestLogWithUrl:path parameter:parameters];
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
return [manager GET:path
parameters:parameters
success:^(AFHTTPRequestOperation *operation, id responseObject) {
[self showSuccessLog:responseObject];
completion(YES);
}
failure:^(AFHTTPRequestOperation *operation, NSError *error) {
[self showErrorLog:error];
completion(NO);
}];
}
- (AFHTTPRequestOperation*)postHttpRequest:(NSString *)path
parameter:(NSDictionary *)parameters
success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure
{
if(NotReachable == [[Reachability reachabilityForInternetConnection] currentReachabilityStatus]){
if (![[YQZSetting sharedInstance] getAlertViewShow]) {
[YQZTools alert:@"提示" message:@"您的网络不给力哦"];
if (failure) {
failure(nil,nil);
}
}
return nil;
}
[self showRequestLogWithUrl:path parameter:parameters];
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
return [manager POST:path
parameters:parameters
success:^(AFHTTPRequestOperation *operation, id responseObject) {
[self showSuccessLog:responseObject];
int code = [[responseObject objectForKey:@"resultCode"] intValue];
if (code == 399) //系统错误
{
failure(operation, nil);
return;
}
if (success)
{
success(operation, responseObject);
}
}
failure:^(AFHTTPRequestOperation *operation, NSError *error) {
[self showErrorLog:error];
failure(operation, error);
}];
}
- (AFHTTPRequestOperation*)postJsonHttpRequest:(NSString *)path
parameter:(NSDictionary *)parameters
success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure
{
if(NotReachable == [[Reachability reachabilityForInternetConnection] currentReachabilityStatus]){
if (![[YQZSetting sharedInstance] getAlertViewShow]) {
[YQZTools alert:@"提示" message:@"您的网络不给力哦"];
failure(nil,nil);
}
return nil;
}
[self showRequestLogWithUrl:path parameter:parameters];
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.responseSerializer = [AFJSONResponseSerializer serializer];
//申明请求的数据是json类型
manager.requestSerializer=[AFJSONRequestSerializer serializer];
return [manager POST:path
parameters:parameters
success:^(AFHTTPRequestOperation *operation, id responseObject) {
[self showSuccessLog:responseObject];
int code = [[responseObject objectForKey:@"resultCode"] intValue];
if (code == 399) //系统错误
{
failure(operation, nil);
return;
}
if (success)
{
success(operation, responseObject);
}
}
failure:^(AFHTTPRequestOperation *operation, NSError *error) {
[self showErrorLog:error];
failure(operation, error);
}];
}
- (AFHTTPRequestOperation*)postHttpRequest:(NSString *)path
paramter:(NSDictionary *)parameters
completion:(void (^)(BOOL success))completion
{
[self showRequestLogWithUrl:path parameter:parameters];
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
return [manager POST:path
parameters:parameters
success:^(AFHTTPRequestOperation *operation, id responseObject) {
[self showSuccessLog:responseObject];
NSLog(@"responseObject: %@", responseObject);
completion(YES);
}
failure:^(AFHTTPRequestOperation *operation, NSError *error) {
[self showErrorLog:error];
completion(NO);
}];
}
#pragma mark - 上传下载 -
- (AFHTTPRequestOperation *)uploadImage:(NSString *)uploadPath
imagePath:(NSString *)imagePath
parameter:(NSDictionary *)parameters
success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure
{
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
NSURL *filePath = [NSURL fileURLWithPath:imagePath];
return [manager POST:uploadPath parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
[formData appendPartWithFileURL:filePath name:@"image" error:nil];
} success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"Success: %@", responseObject);
success(operation, responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
failure(operation, error);
}];
}
- (AFHTTPRequestOperation *)uploadImage:(NSString *)url
path:(NSString *)path
name:(NSString *)name
paramter:(NSDictionary *)parameter
completion:(void (^)(BOOL success))completion
{
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
return [manager POST:url parameters:parameter constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
[formData appendPartWithFileURL:[NSURL fileURLWithPath:path] name:name error:nil];
} success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"Upload Success: %@", responseObject);
completion(YES);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Upload Error: %@", error);
completion(NO);
}];
}
- (AFHTTPRequestOperation *)uploadImage:(NSString *)url
imageData:(NSData *)imageData
imageName:(NSString *)imageName
fileName:(NSString*)fileName
paramter:(NSDictionary *)parameter
success:(void (^)(AFHTTPRequestOperation *operation,id responseObject))success
failure:(void (^)(AFHTTPRequestOperation *operation,NSError *error))failure
{
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
return [manager POST:url parameters:parameter constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
[formData appendPartWithFileData:imageData
name:imageName
fileName:fileName
mimeType:@"image/*"];
} success:^(AFHTTPRequestOperation *operation, id responseObject) {
[self showSuccessLog:responseObject];
NSLog(@"Upload Success: %@", responseObject);
success(operation,responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Upload Error: %@", error);
failure(operation, error);
}];
}
- (AFHTTPRequestOperation *)downloadImage:(NSString*)url
saveToFile:(NSString *)path
completion:(void (^)(bool success))block
{
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
operation.outputStream = [NSOutputStream outputStreamToFileAtPath:path append:NO];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
block(YES);
NSLog(@"Successfully downloaded file to %@", path);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"%@", error);
block(NO);
}];
[operation start];
return operation;
}
#pragma mark - 日志 -
- (void)showRequestLogWithUrl:(NSString *)path parameter:(NSDictionary *)parameters
{
NSLog(@"========请求路径==========================");
NSLog(@"Request URL: \n%@ \nParameter:\n%@", path, parameters);
}
- (void)showSuccessLog:(id)responseObject
{
NSLog(@"========✔️✔️✔️✔️========================");
NSLog(@"请求成功!返回结果:\n%@", responseObject);
NSLog(@"=========================================");
}
- (void)showErrorLog:(NSError *)error
{
NSLog(@"========❌❌❌❌========================");
NSLog(@"请求失败!错误描述:\n%@", error.localizedDescription);
NSLog(@"=========================================");
}
@end
httpHelper请求辅助类的更多相关文章
- .net Core 使用IHttpClientFactory请求
导读:本文已添加在晨曦微服务之旅,现在自己在尝试微服务架构,一边学边做项目快速的进入状态.当然在学习的过程中会将自己学到的知识进行分享. 一.为什么不用HttpClient ...
- Http请求封装基类HttpHelper.cs
HttpHelper请求封装基类,支持get请求和POS请求http接口交互,为后面接口交互做准备. 1.HttpHelper帮助基类 using System; using System.Colle ...
- 微信公众号开发系列-Http请求封装基类
HttpHelper请求封装基类,支持get请求和POS请求,方便微信开发接口交互,为后面接口交互做准备. 1.HttpHelper帮助基类 [csharp] view plaincopy using ...
- 微信公众号开发系列-Http请求包基类
HttpHelper请求包基类,支持get请求和POS要求.以促进微通道交互界面的开发,为了准备的人机交互界面,背部. 1.HttpHelper帮助基类 [csharp] view plaincopy ...
- C#实现HTTP访问类HttpHelper
在项目开发过程中,我们经常会访问第三方接口,如我们需要接入的第三方接口是Web API,这时候我们就需要使用HttpHelper调用远程接口了.示例中的HttpHelper类使用Log4Net记录了每 ...
- 用java实现新浪爬虫,代码完整剖析(仅针对当前SinaSignOn有效)
先来看我们的web.xml文件,如下 <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application ...
- .netcore 3.1 C# 微信小程序发送订阅消息
一.appsettings.json定义小程序配置信息 "WX": { "AppId": "wx88822730803edd44", &qu ...
- 使用HttpWebrequest对网站进行模拟操作(附登陆百度demo)
// a[href=#viewSource]"); //查看源代码标签 viewSourceArr.attr("title", "查看源代码"); v ...
- LindDotNetCore~Polly组件对微服务场景的价值
回到目录 Polly是一个开源框架,在github上可以找到,被善友大哥收录,也是.App vNext的一员! App vNext:https://github.com/App-vNext GitHu ...
随机推荐
- Jenkins安装配置简单使用
安装启动是十分简单的,直接去https://jenkins.io/download/下载对应的rpm包就好了,需要注意的是我们的机器上要提前有java环境,相对应要选择你java环境可以支持的jenk ...
- Exception in thread "main" java.lang.NoClassDefFoundError: antlr/ANTLRException 解决方法
转自:https://blog.csdn.net/gengkunpeng/article/details/6225286?utm_source=blogxgwz4 1. struts2.3.15 hi ...
- php中替换中文引号不成功的原因
中文引号替换成英文引号,突然发现总是不成功. 后来查找资料得知,需要写成这种风格的. 正确代码如下: 中文单引号: str_replace('‘',''',$str);str_replace('’ ...
- django根据不同app配置相应的log文件
django根据不同app配置相应的log文件 settings.py # django logging LOG_PATH = "/var/log/blog/" LOGGING = ...
- 4-数组、指针与字符串1.3-this指针
this指针时一个隐含于每一个类的成员函数中的特殊指针(包括构造函数和析构函数),它用于指向正在被成员函数操作的对象. this指针明确地指出了成员函数当前所操作的数据所属的对象.实际过程是,当通过一 ...
- oracle查看表,索引,视图,存储过程的定义
通过 DBMS_METADATA 包 Oracle 的在线文档,对这个包有详细说明: DBMS_METADATA 通过该dbms_metadata包的get_ddl()方法,我们可以查看表,索引, ...
- 数组,for语句(补10.11)
1.数组定义:一系列通数据类型的数据集合. 2.数组赋值的两种方法: 先定义后赋值:(赋值从0开始) var aa = new Arrey(); aa[0] = 1; aa[1] = 2; 定义并赋值 ...
- sqlserver2012——逻辑运算符
ALL 如果一组的比较都为TRUE,则结果为true ANY如果玉足比较中任何一个为true,则结果为true AND 两个boll都为TRUE,则结果为TRUE OR 两个BOLL任何一个TRUE, ...
- cf791B(完全图&dfs)
题目链接:http://codeforces.com/contest/791/problem/B 题意:给出一个无向图,问是否满足若存在边ab, bc则存在边ac: 思路:题意即,对于一个点,其所有子 ...
- Spring包的依赖关系以及提供下载
https://www.jianshu.com/p/5b0c96975164 这篇简书叙述的很完整 一下是个人整和的炸包,里面有很全面的Spring包, 还有一些其他包,都是官网下载 emmmm... ...