【发布时间】:2016-11-21 22:44:53
【问题描述】:
我正在尝试找出一种方法来查找我的 AFNetworking 请求发送/接收了多少数据。解决此问题的一些最佳做法是什么?
例子:
- 对端点
fakeapi/downloadlist执行GET - 我想知道有多少字节被发送到服务器,又收到了多少字节。
感谢您的帮助!
【问题讨论】:
标签: ios afnetworking nsurlsession
我正在尝试找出一种方法来查找我的 AFNetworking 请求发送/接收了多少数据。解决此问题的一些最佳做法是什么?
例子:
fakeapi/downloadlist执行GET 感谢您的帮助!
【问题讨论】:
标签: ios afnetworking nsurlsession
让我们使用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 的参数(在失败事件中可以为空,如果是这种情况则没有响应,最有可能在没有互联网连接时发生)。根据继承自NSURLSessionTask 的Apple Documentation for NSURLSessionDataTask,可以获得响应对象的一些其他属性(查看文档中的符号部分):
int bytesReceived = ((int)[task countOfBytesReceived]);
int bytesSent = ((int)[task countOfBytesSent]);
// Do something with the numbers from here...
从这里进一步,看看Symbols for NSURLSessionTask 并采取任何其他你需要的东西。
【讨论】: