使用AFNetworking跟踪网络请求的数据使用情况

时间:2016-11-21 22:44:54

标签: ios afnetworking nsurlsession

我正试图找出一种方法来查找我的AFNetworking请求发送/接收的数据量。有哪些解决此问题的最佳实践?

示例:

  • 对端点fakeapi/downloadlist
  • 进行GET
  • 我想知道向服务器发送了多少字节以及接收了多少字节。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

让我们点GET:parameters:success:failure:上的AFHTTPSessionManager 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 NSURLSessionDataTaskNSURLSessionTask,可以获取响应对象的其他属性(请查看文档中的符号部分):

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

再从这里开始,看看Symbols for NSURLSessionTask并采取您需要的任何其他事情。