【问题标题】:Tracking data usage for network requests using AFNetworking使用 AFNetworking 跟踪网络请求的数据使用情况
【发布时间】:2016-11-21 22:44:53
【问题描述】:

我正在尝试找出一种方法来查找我的 AFNetworking 请求发送/接收了多少数据。解决此问题的一些最佳做法是什么?

例子:

  • 对端点fakeapi/downloadlist执行GET
  • 我想知道有多少字节被发送到服务器,又收到了多少字节。

感谢您的帮助!

【问题讨论】:

    标签: ios afnetworking nsurlsession


    【解决方案1】:

    让我们使用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 的参数(在失败事件中可以为空,如果是这种情况则没有响应,最有可能在没有互联网连接时发生)。根据继承自NSURLSessionTaskApple Documentation for NSURLSessionDataTask,可以获得响应对象的一些其他属性(查看文档中的符号部分):

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

    从这里进一步,看看Symbols for NSURLSessionTask 并采取任何其他你需要的东西。

    【讨论】:

      猜你喜欢
      • 2016-02-09
      • 1970-01-01
      • 1970-01-01
      • 2014-11-11
      • 2011-09-30
      • 2014-01-27
      • 1970-01-01
      • 1970-01-01
      • 2010-11-13
      相关资源
      最近更新 更多