你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> IOS 使用Block二次封裝AFNetworking 3.0詳解

IOS 使用Block二次封裝AFNetworking 3.0詳解

編輯:IOS開發綜合

IOS 使用Block二次封裝A.networking 3.0詳解

現在我們網絡請求大都用第三方工具—–A.networking;

其中,A.networking 3.0 是對 NSURLSession 進行的封裝,簡化了很多步驟,但是在現實開發中,我們可以將AFNetworking再次封裝到一個類中,這樣通過傳去URL和Parameters 就可以進行網絡請求。

具體實現步驟:

前期准備:導入AFNetworking第三方框架

1、新建一個工具類,繼承自NSObject;

2、在.h 中宏定義兩個block,用來回調請求結果;

//宏定義成功block 回調成功後得到的信息
typedef void (^HttpSuccess)(id data);
//宏定義失敗block 回調失敗信息
typedef void (^HttpFailure)(NSError *error);

3、使用類方法創建兩個GET 和 POST請求函數;

//get請求
+(void)getWithUrlString:(NSString *)urlString success:(HttpSuccess)success failure:(HttpFailure)failure;


//post請求
+(void)postWithUrlString:(NSString *)urlString parameters:(NSDictionary *)parameters success:(HttpSuccess)success failure:(HttpFailure)failure;

4、在.m 中#import “AFNetworking/AFNetworking.h”,並實現.h中定義的兩個函數;

//GET請求
+(void)getWithUrlString:(NSString *)urlString success:(HttpSuccess)success failure:(HttpFailure)failure{
  //創建請求管理者
  AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

  manager.responseSerializer = [AFHTTPResponseSerializer serializer];
  //內容類型
  manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json",@"text/json",@"text/JavaScript",@"text/html", nil];
  //get請求
  [manager GET:urlString parameters:nil progress:^(NSProgress * _Nonnull downloadProgress) {
    //數據請求的進度
  } success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responSEObject) {
    success(responSEObject);
  } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
    failure(error);
  }];

}

//POST請求
+(void)postWithUrlString:(NSString *)urlString parameters:(NSDictionary *)parameters success:(HttpSuccess)success failure:(HttpFailure)failure{
  //創建請求管理者
  AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
  //
  manager.responseSerializer = [AFHTTPResponseSerializer serializer];
  //內容類型
  manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json",@"text/json",@"text/JavaScript",@"text/html", nil];
  //post請求
  [manager POST:urlString parameters:parameters progress:^(NSProgress * _Nonnull uploadProgress) {
    //數據請求的進度
  } success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responSEObject) {
    success(responseObject);
  } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
    failure(error);
  }];
}

使用步驟:

1、導入自定義的工具類名;

2、調用自定義的方法;

  [XMAFNRequestTools getWithUrlString:url success:^(id data) {
    self.array = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments | NSJSONReadingMutableLeaves error:nil];
    NSLog(@"%@",self.array);
  } failure:^(NSError *error) {
    NSLog(@"%@",error);
  }];

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

【IOS 使用Block二次封裝AFNetworking 3.0詳解】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved