iOS - AFNetWorking打印請求時的相關信息

- (void)printRequestMessage:(NSURLSessionDataTask *)task {
    
    /*
    // 請求URL
    NSLog(@"請求URL:%@\n",task.originalRequest.URL);
    
    // 請求方式
    NSLog(@"請求方式:%@\n",task.originalRequest.HTTPMethod);
    
    // 請求頭信息
    NSLog(@"請求頭信息:%@\n",task.originalRequest.allHTTPHeaderFields);
    
    // 請求正文信息
    NSLog(@"請求正文信息:%@\n",[[NSString alloc] initWithData:task.originalRequest.HTTPBody encoding:NSUTF8StringEncoding]);
    */

    // 請求響應時間
    NSTimeInterval time = [[NSDate date] timeIntervalSinceDate:self.startRequestDate];
    NSLog(@"請求響應時間:%@\n",@(time));
    NSLog(@"\n請求URL:%@\n請求方式:%@\n請求頭信息:%@\n請求正文信息:%@\n請求響應時間:%@\n",task.originalRequest.URL,task.originalRequest.HTTPMethod,task.originalRequest.allHTTPHeaderFields,[[NSString alloc] initWithData:task.originalRequest.HTTPBody encoding:NSUTF8StringEncoding],@(time));
    
}
2020-04-26 17:48:23.314223+0800 AnyApp3[47513:992582] 
請求URL:http://zhouxunwang.cn/data/?id=75&key=BLnA/NVlS93+h5yA84I3QGjBOwTgsJeZ/px16A&type=top
請求方式:GET
請求頭信息:{
    "Accept-Language" = "en;q=1";
    "User-Agent" = "AnyApp3/1.0 (iPhone; iOS 13.2.2; Scale/3.00)";
}
請求正文信息:
請求響應時間:4.867936968803406

2020-04-26 17:48:23.314456+0800 AnyApp3[47513:992582] success:???
{"reason":"成功的返回","result":{"stat":"1","data":[{"uniquekey":"39285848ab25baad341d364edc9b3de5","title":"武漢外賣小哥馬路邊吃蛋糕结窘,泣不成聲","date":"2020-04-26 17:20","category":"頭條","author_name":"人民日報","url":"https:\/\/v.juhe.cn\/toutiao\/s?id=https%3A%2F%2Fmini.eastday.com%2Fmobile%2F200426172055108.html","thumbnail_pic_s":"https:\/\/01imgmini.eastday.com\/mobile\/20200426\/20200426172055_59096a3df3808ba1f7ec6edfa2889ac9_3_mwpm_03200403.jpg","thumbnail_pic_s02":"http:\/\/01imgmini.eastday.com\/mobile\/20200426\/20200426172055_59096a3df3808ba1f7ec6edfa2889ac9_2_mwpm_03200403.jpg","thumbnail_pic_s03":"http:\/\/01imgmini.eastday.com\/mobile\/20200426\/20200426172055_59096a3df3808ba1f7ec6edfa2889ac9_1_mwpm_03200403.jpg"},{"uniquekey":"2d48edd6706e5e0b6b8f513af0e5bf80","title":"全球新冠肺炎COVID-19實時追蹤半等,關注全球疫情動態(tài)","date":"2020-04-26 17:48:18","category":"頭條","author_name":"健康資訊","url":"https:\/\/covid-19.juheapi.c

請求類

#import <Foundation/Foundation.h>

@class SPRequest;
@protocol SPRequestDelegate <NSObject>

- (void)SPRequest:(SPRequest *)request finished:(NSString *)response;
- (void)SPRequest:(SPRequest *)request Error:(NSString *)error;
@end

@interface SPRequest : NSObject
@property (assign) id <SPRequestDelegate> delegate;

/**
 *[AFNetWorking]的operationManager對象
 */
@property (nonatomic, strong) AFHTTPSessionManager *operationManager;

/**
 *當前的請求operation隊列
 */
@property (nonatomic, strong) NSOperationQueue *operationQueue;
/**
 *當前的請求開始時間
 */
@property (nonatomic, strong) NSDate *startRequestDate;


/**
 *功能: 創(chuàng)建SPRequest的對象方法
 */
+ (instancetype)request;

/**
 *功能:GET請求
 *參數:(1)請求的url: urlString
 *     (2)請求成功調用的Block: success
 *     (3)請求失敗調用的Block: failure
 */
- (void)GET:(NSString *)URLString
 parameters:(NSDictionary*)parameters
    success:(void (^)(SPRequest *request, NSString *responseString))success
    failure:(void (^)(SPRequest *request, NSError *error))failure;

/**
 *功能:POST請求
 *參數:(1)請求的url: urlString
 *     (2)POST請求體參數:parameters
 *     (3)請求成功調用的Block: success
 *     (4)請求失敗調用的Block: failure
 */
- (void)POST:(NSString *)URLString
  parameters:(NSDictionary*)parameters
     success:(void (^)(SPRequest *request, NSString *responseString))success
     failure:(void (^)(SPRequest *request, NSError *error))failure;

/**
 *  post請求
 *
 *  @param URLString  請求網址
 *  @param parameters 請求參數
 */
- (void)postWithURL:(NSString *)URLString parameters:(NSDictionary *)parameters;

/**
 *  get 請求
 *
 *  @param URLString 請求網址
 */
- (void)getWithURL:(NSString *)URLString;

/**
 *取消當前請求隊列的所有請求
 */
- (void)cancelAllOperations;

@end
#import "SPRequest.h"

@implementation SPRequest

+ (instancetype)request {
    return [[self alloc] init];
}

- (instancetype)init {
    self = [super init];
    if (self) {
        self.operationManager = [AFHTTPSessionManager manager];
        self.startRequestDate = [NSDate date];
    }
    return self;
}

- (void)GET:(NSString *)URLString
 parameters:(NSDictionary*)parameters
    success:(void (^)(SPRequest *request, NSString *responseString))success
    failure:(void (^)(SPRequest *request, NSError *error))failure {
    
    self.operationQueue = self.operationManager.operationQueue;
    self.operationManager.responseSerializer = [AFHTTPResponseSerializer serializer];
    
    [self.operationManager GET:URLString parameters:parameters progress:^(NSProgress * _Nonnull downloadProgress) {
        
        NSLog(@"%@",downloadProgress);
    } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
        
        // 請求結果
        NSString *responseJson = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
        success(self,responseJson);
        
        // 打印相關Log
        [self printRequestMessage:task];
        NSLog(@"success:???\n%@",responseJson);

        
    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
        
        failure(self,error);
        
        // 打印相關Log
        [self printRequestMessage:task];
        NSLog(@"failure:???\n%@",error.localizedDescription);
        
    }];
    
}

- (void)POST:(NSString *)URLString
  parameters:(NSDictionary*)parameters
     success:(void (^)(SPRequest *request, NSString *responseString))success
     failure:(void (^)(SPRequest *request, NSError *error))failure{
    
    self.operationQueue = self.operationManager.operationQueue;
    self.operationManager.responseSerializer = [AFJSONResponseSerializer serializer];
    
    [self.operationManager POST:URLString parameters:parameters progress:^(NSProgress * _Nonnull uploadProgress) {
        
        NSLog(@"%@",uploadProgress);
    } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
        
        // 請求結果
        NSString *responseJson = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
        success(self,responseJson);
        
        // 打印相關Log
        [self printRequestMessage:task];
        NSLog(@"success:???\n%@",responseJson);
        
    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
        
        failure(self,error);
        
        // 打印相關Log
        [self printRequestMessage:task];
        NSLog(@"failure:???\n%@",error.localizedDescription);
        
    }];
    
}

- (void)postWithURL:(NSString *)URLString parameters:(NSDictionary *)parameters {
    
    [self POST:URLString
    parameters:parameters
       success:^(SPRequest *request, NSString *responseString) {
           if ([self.delegate respondsToSelector:@selector(SPRequest:finished:)]) {
               [self.delegate SPRequest:request finished:responseString];
               
           }
       }
       failure:^(SPRequest *request, NSError *error) {
           if ([self.delegate respondsToSelector:@selector(SPRequest:Error:)]) {
               [self.delegate SPRequest:request Error:error.description];
           }
       }];
}

- (void)getWithURL:(NSString *)URLString {
    
    [self GET:URLString parameters:nil success:^(SPRequest *request, NSString *responseString) {
        if ([self.delegate respondsToSelector:@selector(SPRequest:finished:)]) {
            [self.delegate SPRequest:request finished:responseString];
        }
    } failure:^(SPRequest *request, NSError *error) {
        if ([self.delegate respondsToSelector:@selector(SPRequest:Error:)]) {
            [self.delegate SPRequest:request Error:error.description];
        }
    }];
}

- (void)cancelAllOperations{
    [self.operationQueue cancelAllOperations];
}

- (void)printRequestMessage:(NSURLSessionDataTask *)task {
    
    /*
    // 請求URL
    NSLog(@"請求URL:%@\n",task.originalRequest.URL);
    
    // 請求方式
    NSLog(@"請求方式:%@\n",task.originalRequest.HTTPMethod);
    
    // 請求頭信息
    NSLog(@"請求頭信息:%@\n",task.originalRequest.allHTTPHeaderFields);
    
    // 請求正文信息
    NSLog(@"請求正文信息:%@\n",[[NSString alloc] initWithData:task.originalRequest.HTTPBody encoding:NSUTF8StringEncoding]);
    */

    // 請求響應時間
    NSTimeInterval time = [[NSDate date] timeIntervalSinceDate:self.startRequestDate];
    NSLog(@"請求響應時間:%@\n",@(time));
    NSLog(@"\n請求URL:%@\n請求方式:%@\n請求頭信息:%@\n請求正文信息:%@\n請求響應時間:%@\n",task.originalRequest.URL,task.originalRequest.HTTPMethod,task.originalRequest.allHTTPHeaderFields,[[NSString alloc] initWithData:task.originalRequest.HTTPBody encoding:NSUTF8StringEncoding],@(time));
    
}

@end
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末匹涮,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子螃成,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件脓诡,死亡現(xiàn)場離奇詭異,居然都是意外死亡媒役,警方通過查閱死者的電腦和手機祝谚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來酣衷,“玉大人交惯,你說我怎么就攤上這事。” “怎么了席爽?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵意荤,是天一觀的道長。 經常有香客問我只锻,道長玖像,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任齐饮,我火速辦了婚禮捐寥,結果婚禮上,老公的妹妹穿的比我還像新娘祖驱。我一直安慰自己握恳,他們只是感情好,可當我...
    茶點故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布捺僻。 她就那樣靜靜地躺著乡洼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪陵像。 梳的紋絲不亂的頭發(fā)上就珠,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天,我揣著相機與錄音醒颖,去河邊找鬼妻怎。 笑死,一個胖子當著我的面吹牛泞歉,可吹牛的內容都是我干的逼侦。 我是一名探鬼主播,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼腰耙,長吁一口氣:“原來是場噩夢啊……” “哼榛丢!你這毒婦竟也來了?” 一聲冷哼從身側響起挺庞,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤晰赞,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后选侨,有當地人在樹林里發(fā)現(xiàn)了一具尸體掖鱼,經...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年援制,在試婚紗的時候發(fā)現(xiàn)自己被綠了戏挡。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡晨仑,死狀恐怖褐墅,靈堂內的尸體忽然破棺而出拆檬,到底是詐尸還是另有隱情,我是刑警寧澤妥凳,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布竟贯,位于F島的核電站,受9級特大地震影響逝钥,放射性物質發(fā)生泄漏澄耍。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一晌缘、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧痢站,春花似錦磷箕、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至呜叫,卻和暖如春空繁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背朱庆。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工盛泡, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人娱颊。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓傲诵,卻偏偏與公主長得像,于是被迫代替她去往敵國和親箱硕。 傳聞我的和親對象是個殘疾皇子拴竹,可洞房花燭夜當晚...
    茶點故事閱讀 43,627評論 2 350

推薦閱讀更多精彩內容