如何使用 okhttp 添加适当的内容长度标头?

Jon*_*Jon 3 java android http content-length okhttp

我正在使用 okhttp 向我的服务器发送请求。问题是 okhttp 发送的请求缺少内容长度标头 - 我可以手动设置标头:

Request.builder
....
.addHeader("content-length","some-value")
Run Code Online (Sandbox Code Playgroud)

但我无法获得适当的价值放在那里。如果我尝试像这样测量我的请求正文:

int request_length = body.length();
builder.addHeader("content-length", String.valueOf(request_length)); 
Run Code Online (Sandbox Code Playgroud)

然后 okhttp 根本不添加标题。

是否有将内容长度标头添加到请求的正确方法(最好是“默认”添加标头的方法)?

Jes*_*son 5

如果您的 ResponseBody 返回的内容长度不是 -1,则它是自动的。