AFNetWorking二次封裝

AFNetWorking的方法,平時使用也就夠用了,但是為了在以后程序中可以多次利用,所以進(jìn)行了二次封裝。我的每一個項目中都會創(chuàng)建一個基類,在基類中進(jìn)行navigationController的設(shè)置,以及網(wǎng)絡(luò)請求的封裝。這樣,在整個項目中的UIViewController繼承這個基類,那么在其他頁面中就可以使用這個積累中的方法。

以下是我的AFNetWorking二次封裝

  • .h文件中
// 網(wǎng)絡(luò)請求類型
typedefNS_ENUM(NSUInteger,HttpRequestType) {
 //get請求
HttpRequestTypeGet =0,
// post請求
HttpRequestTypePost
};
/**
*發(fā)送網(wǎng)絡(luò)請求
*
*@param url請求的網(wǎng)址字符串
*@param parameters請求的參數(shù)
*@param type請求的類型
*@param success請求成功的結(jié)果
*@param failure請求失敗的結(jié)果
*/
- (void)networkRequest:(NSString*)url andParameters:(NSDictionary*)parameters andRequestType:(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*)url  parameters:(id)parameters uploadParam:(UploadParam *)uploadParam  success:(void(^)())success  failure:(void(^)(NSError*error))failure;
  • .m文件中
//網(wǎng)絡(luò)請求
-(void)networkRequest:(NSString *)url andParameters:(NSDictionary *)parameters andRequestType:(HttpRequestType)type success:(void (^)(id responseObject))success failure:(void (^)(NSError * error))failure{
     if (type == 0) {
        [self.mgr GET:url 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);
            }
        }];
    }
    if (type == 1){
        [self.mgr POST:url parameters:parameters progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
            if (success) {
                success(responseObject);
            }
        } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
            NSLog(@"error%@",error);
            if (failure) {
                failure(error);
            }
        }];
    }
}
-(void)uploadWithURLString:(NSString *)url parameters:(id)parameters uploadParam:(NSDictionary *)uploadParam success:(void (^)())success failure:(void (^)(NSError *))failure{
    [self.mgr POST:url parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {
        [formData appendPartWithFileData:(圖片的二進(jìn)制數(shù)據(jù)) name:(服務(wù)器對應(yīng)的參數(shù)名稱) fileName:(文件的名稱(上傳到服務(wù)器后,服務(wù)器保存的文件名)) mimeType:(文件的MIME類型(image/png,image/jpg等))];
    } 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)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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