AFN3.0封裝一層工具類
#import
#import "AFNetworking.h"
@interface HttpRequest : NSObject
typedef void(^success)(NSURLSessionDataTask *task, id responseObject);
typedef void(^failure)(NSURLSessionDataTask *task, NSError *error);
+ (void)POST:(NSString *)URLString
parameters:(NSMutableDictionary *)parameters andSuccess:(success)successBlock andFailure:(failure)failureBlock;
@end
#import "HttpRequest.h"
#define kTimeOutInterval 20.0f
@implementation HttpRequest
+(AFHTTPSessionManager *)manager
{
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
// 超時時間
manager.requestSerializer.timeoutInterval = kTimeOutInterval;
// 宣告上傳的是json格式的引數,需要你和後臺約定好,不然會出現後臺無法獲取到你上傳的引數問題
manager.requestSerializer = [AFHTTPRequestSerializer serializer]; // 上傳普通格式
// manager.requestSerializer = [AFJSONRequestSerializer serializer]; // 上傳JSON格式
// 宣告獲取到的資料格式
manager.responseSerializer = [AFHTTPResponseSerializer serializer]; // AFN不會解析,資料是data,需要自己解析
// manager.responseSerializer = [AFJSONResponseSerializer serializer]; // AFN會JSON解析返回的資料
// 個人建議還是自己解析的比較好,有時介面返回的資料不合格會報3840錯誤,大致是AFN無法解析返回來的資料
return manager;
}
+ (void)POST:(NSString *)URLString
parameters:(NSMutableDictionary *)parameters andSuccess:(success)successBlock andFailure:(failure)failureBlock
{
// 建立請求類
AFHTTPSessionManager *manager = [self manager];
[manager POST:URLString
parameters:parameters
progress:^(NSProgress * _Nonnull uploadProgress) {
// 這裡可以獲取到目前資料請求的進度
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
// 請求成功
if (successBlock) {
successBlock(task,responseObject);
}
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
// 請求失敗
if (failureBlock) {
failureBlock(task,error);
}
}];
}
@end
相關文章
- 封裝Date工具類封裝
- 封裝Redis工具類封裝Redis
- 一次Android動畫工具類的封裝Android動畫封裝
- Android 常見工具類封裝Android封裝
- 一、類的封裝性封裝
- JavaFx 生成二維碼工具類封裝Java封裝
- iOS微信支付接入以及工具類封裝iOS封裝
- 清除快取資料--工具類封裝快取封裝
- cocos2dx原始碼:背景層封裝類原始碼封裝
- JDK1.8 LocalDate 使用方式;LocalDate 封裝Util,LocalDate工具類(一)JDKLDA封裝
- Android常用工具類的封裝Android封裝
- 封裝xunsearch類封裝
- JS 封裝類JS封裝
- 5.Hibernate工具類的簡易封裝封裝
- FMDB 二次封裝工具類,讓你快速學會封裝,整合資料庫封裝資料庫
- Retrofit+okhttp+Rxjava封裝網路請求工具類HTTPRxJava封裝
- 封裝avalonia指定元件允許拖動的工具類封裝元件
- JsonValue 封裝類JSON封裝
- 一個最簡單的類JQuery封裝jQuery封裝
- 前端簡潔並實用的工具類函式封裝前端函式封裝
- 【JavaScript框架封裝】實現一個類似於JQuery的動畫框架的封裝JavaScript框架封裝jQuery動畫
- APIjson多層資料實體類封裝(利用泛型技術)APIJSON封裝泛型
- jquery div層拖動效果封裝jQuery封裝
- c#封裝DBHelper類C#封裝
- 4、類和物件—封裝物件封裝
- 自用驗證類封裝封裝
- 封裝獲取Class類封裝
- php的curl封裝類PHP封裝
- 自己動手封裝js工具類(JS中定義類的幾種方式)封裝JS
- 【Django drf】檢視類APIView之五層封裝 ApiView的類屬性 drf配置檔案DjangoAPIView封裝
- 如何封裝一個自動歸、解檔類封裝
- 封裝JDBC—非框架開發必備的封裝類封裝JDBC框架
- 【編碼】封裝RedisPubSub工具封裝Redis
- 1_websocket工具封裝Web封裝
- 十五、類與封裝的概念封裝
- c# Lambda操作類封裝C#封裝
- Android Logcat 封裝類AndroidGC封裝
- http通訊類的封裝HTTP封裝