You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
270 lines
7.2 KiB
270 lines
7.2 KiB
1 year ago
|
//
|
||
|
// MOBFHttpService.h
|
||
|
// MOBFoundation
|
||
|
//
|
||
|
// Created by vimfung on 15-1-20.
|
||
|
// Copyright (c) 2015年 MOB. All rights reserved.
|
||
|
//
|
||
|
|
||
|
#import <Foundation/Foundation.h>
|
||
|
|
||
|
@class MOBFHttpService;
|
||
|
|
||
|
/**
|
||
|
* GET方式
|
||
|
*/
|
||
|
extern NSString *const kMOBFHttpMethodGet;
|
||
|
|
||
|
/**
|
||
|
* POST方式
|
||
|
*/
|
||
|
extern NSString *const kMOBFHttpMethodPost;
|
||
|
|
||
|
/**
|
||
|
* DELETE方式
|
||
|
*/
|
||
|
extern NSString *const kMOBFHttpMethodDelete;
|
||
|
|
||
|
/**
|
||
|
* HEAD方式
|
||
|
*/
|
||
|
extern NSString *const kMOBFHttpMethodHead;
|
||
|
|
||
|
/**
|
||
|
* HTTP返回事件
|
||
|
*
|
||
|
* @param response 回复对象
|
||
|
* @param responseData 回复数据
|
||
|
*/
|
||
|
typedef void(^MOBFHttpResultEvent) (NSHTTPURLResponse *response, NSData *responseData);
|
||
|
|
||
|
/**
|
||
|
* HTTP错误事件
|
||
|
*
|
||
|
* @param error 错误信息
|
||
|
*/
|
||
|
typedef void(^MOBFHttpFaultEvent) (NSError *error);
|
||
|
|
||
|
/**
|
||
|
* HTTP上传数据事件
|
||
|
*
|
||
|
* @param totalBytes 总字节数
|
||
|
* @param loadedBytes 上传字节数据
|
||
|
*/
|
||
|
typedef void(^MOBFHttpUploadProgressEvent) (int64_t totalBytes, int64_t loadedBytes);
|
||
|
|
||
|
/**
|
||
|
* HTTP下载数据事件
|
||
|
*
|
||
|
* @param totalBytes 总字节数
|
||
|
* @param loadedBytes 上传字节数据
|
||
|
*/
|
||
|
typedef void(^MOBFHttpDownloadProgressEvent) (int64_t totalBytes, int64_t loadedBytes);
|
||
|
|
||
|
/**
|
||
|
* HTTP服务类
|
||
|
*/
|
||
|
@interface MOBFHttpService : NSObject
|
||
|
|
||
|
/**
|
||
|
* @brief 提交方式,默认为GET
|
||
|
*/
|
||
|
@property (nonatomic, copy) NSString *method;
|
||
|
|
||
|
/**
|
||
|
超时时间
|
||
|
*/
|
||
|
@property (nonatomic) NSTimeInterval timeout;
|
||
|
|
||
|
/**
|
||
|
* @brief 是否缓存回复对象,默认为YES
|
||
|
*/
|
||
|
@property (nonatomic) BOOL isCacheResponse;
|
||
|
|
||
|
/**
|
||
|
* 自动填充请求表单,默认为YES,如果为NO则表示使用自定义的方式发起请求。
|
||
|
*/
|
||
|
@property (nonatomic) BOOL autoFillRequestForm;
|
||
|
|
||
|
/**
|
||
|
* 初始化HTTP服务
|
||
|
*
|
||
|
* @param urlString URL地址字符串
|
||
|
*
|
||
|
* @return HTTP服务对象
|
||
|
*/
|
||
|
- (id)initWithURLString:(NSString *)urlString;
|
||
|
|
||
|
/**
|
||
|
* 初始化HTTP服务
|
||
|
*
|
||
|
* @param URL URL地址对象
|
||
|
*
|
||
|
* @return HTTP服务对象
|
||
|
*/
|
||
|
- (id)initWithURL:(NSURL *)URL;
|
||
|
|
||
|
/**
|
||
|
* 初始化HTTP服务
|
||
|
*
|
||
|
* @param request 请求对象
|
||
|
*
|
||
|
* @return HTTP服务对象
|
||
|
*/
|
||
|
- (id)initWithRequest:(NSURLRequest *)request;
|
||
|
|
||
|
/**
|
||
|
* 添加HTTP头
|
||
|
*
|
||
|
* @param header 名称
|
||
|
* @param value 值
|
||
|
*/
|
||
|
- (void)addHeader:(NSString *)header value:(NSString *)value;
|
||
|
|
||
|
/**
|
||
|
* 添加HTTP头集合
|
||
|
*
|
||
|
* @param headers 头集合
|
||
|
*/
|
||
|
- (void)addHeaders:(NSDictionary *)headers;
|
||
|
|
||
|
/**
|
||
|
* 添加参数
|
||
|
*
|
||
|
* @param value 参数值
|
||
|
* @param key 参数名字
|
||
|
*/
|
||
|
- (void)addParameter:(id)value forKey:(NSString *)key;
|
||
|
|
||
|
/**
|
||
|
* 添加多个参数
|
||
|
*
|
||
|
* @param parameters 参数集合
|
||
|
*/
|
||
|
- (void)addParameters:(NSDictionary *)parameters;
|
||
|
|
||
|
/**
|
||
|
* 添加上传文件参数
|
||
|
*
|
||
|
* @param fileData 文件数据
|
||
|
* @param fileName 文件名称
|
||
|
* @param mimeType MIME类型
|
||
|
* @param transferEncoding 传输编码
|
||
|
* @param key 参数名字
|
||
|
*/
|
||
|
- (void)addFileParameter:(NSData *)fileData
|
||
|
fileName:(NSString *)fileName
|
||
|
mimeType:(NSString *)mimeType
|
||
|
transferEncoding:(NSString *)transferEncoding
|
||
|
forKey:(NSString *)key;
|
||
|
|
||
|
/**
|
||
|
* 设置请求体数据,可以为NSData或者NSInputStream
|
||
|
*
|
||
|
* @param body 请求体数据
|
||
|
*/
|
||
|
- (void)setBody:(id)body;
|
||
|
|
||
|
/**
|
||
|
* 发送请求
|
||
|
*
|
||
|
* @param resultHandler 返回回调
|
||
|
* @param faultHandler 错误回调
|
||
|
* @param uploadProgressHandler 上传数据进度回调
|
||
|
*/
|
||
|
- (void)sendRequestOnResult:(MOBFHttpResultEvent)resultHandler
|
||
|
onFault:(MOBFHttpFaultEvent)faultHandler
|
||
|
onUploadProgress:(MOBFHttpUploadProgressEvent)uploadProgressHandler;
|
||
|
|
||
|
|
||
|
/**
|
||
|
发送请求
|
||
|
|
||
|
@param resultHandler 返回回调
|
||
|
@param faultHandler 错误回调
|
||
|
@param uploadProgressHandler 上传数据进度回调
|
||
|
@param downloadProgressHandler 下载数据进度回调
|
||
|
*/
|
||
|
- (void)sendRequestOnResult:(MOBFHttpResultEvent)resultHandler
|
||
|
onFault:(MOBFHttpFaultEvent)faultHandler
|
||
|
onUploadProgress:(MOBFHttpUploadProgressEvent)uploadProgressHandler
|
||
|
onDownloadProgress:(MOBFHttpDownloadProgressEvent)downloadProgressHandler;
|
||
|
|
||
|
/**
|
||
|
* 取消请求
|
||
|
*/
|
||
|
- (void)cancelRequest;
|
||
|
|
||
|
/**
|
||
|
* 发送HTTP请求
|
||
|
*
|
||
|
* @param urlString 请求地址
|
||
|
* @param method 请求方式
|
||
|
* @param parameters 请求参数
|
||
|
* @param headers 请求头集合
|
||
|
* @param resultHandler 返回回调
|
||
|
* @param faultHandler 错误回调
|
||
|
* @param uploadProgressHandler 上传数据进度回调
|
||
|
*
|
||
|
* @return HTTP服务对象
|
||
|
*/
|
||
|
+ (MOBFHttpService *)sendHttpRequestByURLString:(NSString *)urlString
|
||
|
method:(NSString *)method
|
||
|
parameters:(NSDictionary *)parameters
|
||
|
headers:(NSDictionary *)headers
|
||
|
onResult:(MOBFHttpResultEvent)resultHandler
|
||
|
onFault:(MOBFHttpFaultEvent)faultHandler
|
||
|
onUploadProgress:(MOBFHttpUploadProgressEvent)uploadProgressHandler;
|
||
|
|
||
|
|
||
|
/**
|
||
|
* 发送HTTP请求
|
||
|
*
|
||
|
* @param urlString 请求地址
|
||
|
* @param method 请求方式
|
||
|
* @param parameters 请求参数
|
||
|
* @param headers 请求头集合
|
||
|
* @param timeout 请求超时
|
||
|
* @param resultHandler 返回回调
|
||
|
* @param faultHandler 错误回调
|
||
|
* @param uploadProgressHandler 上传数据进度回调
|
||
|
*
|
||
|
* @return HTTP服务对象
|
||
|
*/
|
||
|
+ (MOBFHttpService *)sendHttpRequestByURLString:(NSString *)urlString
|
||
|
method:(NSString *)method
|
||
|
parameters:(NSDictionary *)parameters
|
||
|
headers:(NSDictionary *)headers
|
||
|
timeout:(NSTimeInterval)timeout
|
||
|
onResult:(MOBFHttpResultEvent)resultHandler
|
||
|
onFault:(MOBFHttpFaultEvent)faultHandler
|
||
|
onUploadProgress:(MOBFHttpUploadProgressEvent)uploadProgressHandler;
|
||
|
|
||
|
/**
|
||
|
* 发送HTTP请求
|
||
|
*
|
||
|
* @param urlString 请求地址
|
||
|
* @param method 请求方式
|
||
|
* @param parameters 请求参数
|
||
|
* @param headers 请求头集合
|
||
|
* @param timeout 请求超时
|
||
|
* @param resultHandler 返回回调
|
||
|
* @param faultHandler 错误回调
|
||
|
* @param uploadProgressHandler 上传数据进度回调
|
||
|
* @param downloadProgressHandler 下载数据进度回调
|
||
|
*
|
||
|
* @return HTTP服务对象
|
||
|
*/
|
||
|
+ (MOBFHttpService *)sendHttpRequestByURLString:(NSString *)urlString
|
||
|
method:(NSString *)method
|
||
|
parameters:(NSDictionary *)parameters
|
||
|
headers:(NSDictionary *)headers
|
||
|
timeout:(NSTimeInterval)timeout
|
||
|
onResult:(MOBFHttpResultEvent)resultHandler
|
||
|
onFault:(MOBFHttpFaultEvent)faultHandler
|
||
|
onUploadProgress:(MOBFHttpUploadProgressEvent)uploadProgressHandler
|
||
|
onDownloadProgress:(MOBFHttpDownloadProgressEvent)downloadProgressHandler;
|
||
|
|
||
|
|
||
|
@end
|