2016-11-21 76 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并采取任何你需要的东西。