改造:如何获得请求和响应的大小?

use*_*667 8 logging retrofit

我正在开发一个Android应用程序并使用改造来发送请求并获得响应.像这样:

public interface Service {
    @POST("/GetInfo")
    InfoResponse getInfo(@Body InfoRequest request);
}
Run Code Online (Sandbox Code Playgroud)

我想知道在执行这些请求时将使用多少数据.

我发现如果我设置LogLevel进行改造,它可以打印出日志中的大小.

要求:

---> HTTP POST http://....
Content-Type: application/json; charset=UTF-8
Content-Length: 516
---> END HTTP (522-byte body)
Run Code Online (Sandbox Code Playgroud)

对于回复:

<--- HTTP 200  http://....
:HTTP/1.1 200 OK 
Content-Type: application/json 
<--- END HTTP (420394-byte body)
Run Code Online (Sandbox Code Playgroud)

这个522字节和420394字节的信息是我想要的.有没有办法直接获取它而不获取日志并解析它?

如果我必须使用这个日志来计算大小,有什么好办法从日志中获取大小然后在android上显示?

谢谢!

Yri*_*kin 1

您可以在改造构建器中添加网络拦截器并检查用于 responseBody.source().apply{request(Long.MAX_VALUE)}.buffer.size响应和request.body.contentLength()请求的大小