AFNetworking的再封裝使用

網(wǎng)絡(luò)請(qǐng)求的時(shí)候最常用到的就是get,post和upload了。

@interface UploadParam : NSObject

/**

*? 圖片的二進(jìn)制數(shù)據(jù)

*/

@property (nonatomic, strong) NSData *data;

/**

*? 服務(wù)器對(duì)應(yīng)的參數(shù)名稱

*/

@property (nonatomic, copy) NSString *name;

/**

*? 文件的名稱(上傳到服務(wù)器后,服務(wù)器保存的文件名)

*/

@property (nonatomic, copy) NSString *filename;

/**

*? 文件的MIME類型(image/png,image/jpg等)

*/

@property (nonatomic, copy) NSString *mimeType;

@end

@class UploadParam;

/**

*? 網(wǎng)絡(luò)請(qǐng)求類型

*/

typedef NS_ENUM(NSUInteger,HttpRequestType) {

/**

*? get請(qǐng)求

*/

HttpRequestTypeGet = 0,

/**

*? post請(qǐng)求

*/

HttpRequestTypePost

};

@interface HttpRequest : NSObject

/**

*? 發(fā)送get請(qǐng)求

*

*? @param URLString? 請(qǐng)求的網(wǎng)址字符串

*? @param parameters 請(qǐng)求的參數(shù)

*? @param success? ? 請(qǐng)求成功的回調(diào)

*? @param failure? ? 請(qǐng)求失敗的回調(diào)

*/

+ (void)getWithURLString:(NSString *)URLString

parameters:(id)parameters

success:(void (^)(id responseObject))success

failure:(void (^)(NSError *error))failure;

/**

*? 發(fā)送post請(qǐng)求

*

*? @param URLString? 請(qǐng)求的網(wǎng)址字符串

*? @param parameters 請(qǐng)求的參數(shù)

*? @param success? ? 請(qǐng)求成功的回調(diào)

*? @param failure? ? 請(qǐng)求失敗的回調(diào)

*/

+ (void)postWithURLString:(NSString *)URLString

parameters:(id)parameters

success:(void (^)(id responseObject))success

failure:(void (^)(NSError *error))failure;

/**

*? 發(fā)送網(wǎng)絡(luò)請(qǐng)求

*

*? @param URLString? 請(qǐng)求的網(wǎng)址字符串

*? @param parameters? 請(qǐng)求的參數(shù)

*? @param type? ? ? ? 請(qǐng)求的類型

*? @param resultBlock 請(qǐng)求的結(jié)果

*/

+ (void)requestWithURLString:(NSString *)URLString

parameters:(id)parameters

type:(HttpRequestType)type

success:(void (^)(id responseObject))success

failure:(void (^)(NSError *error))failure;

/**

*? 上傳圖片

*

*? @param URLString? 上傳圖片的網(wǎng)址字符串

*? @param parameters? 上傳圖片的參數(shù)

*? @param uploadParam 上傳圖片的信息

*? @param success? ? 上傳成功的回調(diào)

*? @param failure? ? 上傳失敗的回調(diào)

*/

+ (void)uploadWithURLString:(NSString *)URLString

parameters:(id)parameters

uploadParam:(UploadParam *)uploadParam

success:(void (^)())success

failure:(void (^)(NSError *error))failure;

#import "HttpRequest.h"

#import "AFNetworking.h"

#import "UploadParam.h"

@implementation HttpRequest

#pragma mark -- GET請(qǐng)求 --

+ (void)getWithURLString:(NSString *)URLString? ? ? ? ? ? ? parameters:(id)parameters? ? ? ? ? ? ? ? success:(void (^)(id))success? ? ? ? ? ? ? ? failure:(void (^)(NSError *))failure?

{? ? ? ??

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];??

? /**? ? *? 可以接受的類型? ? */? ??

manager.responseSerializer = [AFHTTPResponseSerializer serializer];? ?

?/**? ? *? 請(qǐng)求隊(duì)列的最大并發(fā)數(shù)? ? *///? ? manager.operationQueue.maxConcurrentOperationCount = 5;??

? /**? ? *? 請(qǐng)求超時(shí)的時(shí)間? ? *///? ??

manager.requestSerializer.timeoutInterval = 5;? ??

[manager GET:URLString parameters:nil 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 -- POST請(qǐng)求 --

+ (void)postWithURLString:(NSString *)URLString? ? ? ? ? ? ? parameters:(id)parameters? ? ? ? ? ? ? ? ? success:(void (^)(id))success? ? ? ? ? ? ? ? ? failure:(void (^)(NSError *))failure?

{? ? ??

? AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];? ? manager.responseSerializer = [AFHTTPResponseSerializer serializer];? ?

?[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 -- POST/GET網(wǎng)絡(luò)請(qǐng)求 --+ (void)requestWithURLString:(NSString *)URLString? ? ? ? ? ? ? ? ? parameters:(id)parameters? ? ? ? ? ? ? ? ? ? ? ? type:(HttpRequestType)type? ? ? ? ? ? ? ? ? ? success:(void (^)(id))success? ? ? ? ? ? ? ? ? ? failure:(void (^)(NSError *))failure {? ? ? ? AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];? ? manager.responseSerializer = [AFHTTPResponseSerializer serializer];? ? switch (type) {? ? ? ? case HttpRequestTypeGet:? ? ? ? {? ? ? ? ? ? [manager GET:URLString parameters:nil progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id? _Nullable responseObject) {? ? ? ? ? ? ? ? if (success) {? ? ? ? ? ? ? ? ? ? success(responseObject);? ? ? ? ? ? ? ? }? ? ? ? ? ? } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {? ? ? ? ? ? ? ? if (failure) {? ? ? ? ? ? ? ? ? ? failure(error);? ? ? ? ? ? ? ? }? ? ? ? ? ? }];? ? ? ? }? ? ? ? ? ? break;? ? ? ? case HttpRequestTypePost:? ? ? ? {? ? ? ? ? ? [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);? ? ? ? ? ? ? ? }? ? ? ? ? ? }];? ? ? ? }? ? ? ? ? ? break;? ? }}

#pragma mark -- 上傳圖片 --

+ (void)uploadWithURLString:(NSString *)URLString? ? ? ? ? ? ? ? parameters:(id)parameters? ? ? ? ? ? ? ? uploadParam:(UploadParam *)uploadParam? ? ? ? ? ? ? ? ? ? success:(void (^)())success? ? ? ? ? ? ? ? ? ? failure:(void (^)(NSError *))failure {? ? ? ? AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];? ? manager.responseSerializer = [AFHTTPResponseSerializer serializer];? ? [manager POST:URLString parameters:parameters constructingBodyWithBlock:^(id_Nonnull formData) {

[formData appendPartWithFileData:uploadParam.data name:uploadParam.name fileName:uploadParam.filename mimeType:uploadParam.mimeType];

} progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id? _Nullable responseObject) {

if (success) {

success(responseObject);

}

} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {

if (failure) {

failure(error);

}

}];

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容