2016-11-21 57 views
0

我正在嘗試找出一種方法來查找使用AFNetworking的請求發送/接收的數據量。解決這個問題的一些最佳實踐是什麼?使用AFNetworking跟蹤網絡請求的數據使用

例子:

  • 做一個GET到端點fakeapi/downloadlist
  • 我想知道有多少字節發送給服務器和多少字節被收了回來。

感謝您的幫助!

回答

0

讓我們用AFHTTPSessionManager上的GET:parameters:success:failure:method來執行GET請求。該方法的聲明是:

- (nullable NSURLSessionDataTask *)GET:(NSString *)URLString parameters:(nullable id)parameters 
    success:(nullable void (^) (NSURLSessionDataTask *task, id _Nullable responseObject))success 
    failure:(nullable void (^) (NSURLSessionDataTask *_Nullable task, NSError *error))failure; 

有這裏有趣兩大塊:一爲成功(命名非常巧妙success),另一個是在請求一個failure

這兩個塊都會返回一個類型爲NSURLSessionDataTask的參數(在失敗事件中爲空,如果是這種情況,那麼沒有響應,最有可能在沒有互聯網連接時發生)。根據Apple Documentation for NSURLSessionDataTask,它從NSURLSessionTask繼承,能夠獲得響應對象的一些其它性質(以上的符號部分一看就文檔):

int bytesReceived = ((int)[task countOfBytesReceived]); 
int bytesSent  = ((int)[task countOfBytesSent]); 
// Do something with the numbers from here... 
從這裏

此外,採取對一個外表Symbols for NSURLSessionTask並採取任何你需要的東西。