gpt4 book ai didi

java - OkHttp RequestBody 返回错误的内容长度

转载 作者:行者123 更新时间:2023-11-29 09:28:48 24 4
gpt4 key购买 nike

我有这个应用程序,我使用 OkHttp RequestBody执行带正文的网络请求,但返回的内容长度显然是错误的。作为问题的一个例子,有这种情况:

    public static RequestBody createNewTokenBody(final String redirectUri, final String
code,
final String clientId, final String
clientSecret) {

final byte[] requestBody = "bunchofcharsthatshouldgointhebody".getBytes(Charset.forName("UTF-8"));

final RequestBody ret = RequestBody.create(MediaType.parse(MEDIA_TYPE), requestBody, 0,
requestBody.length);

try {
Log.d("debug", "Request body length to return: " + ret.contentLength());
} catch (IOException e) {
e.printStackTrace();
}

return ret;
}

所以这将打印“请求返回的正文长度:33”。 但是,当这个主体附加到的请求被下面的拦截器捕获时:

    client.networkInterceptors().add(new Interceptor() {
@Override
public Response intercept(final Chain chain) throws IOException {
final Request request = chain.request();

final RequestBody body = request.body();
if (body != null) {
Log.d("debug", "REQUEST BODY LENGTH: " + body.contentLength());
}

return chain.proceed(request);
}
});

“REQUEST BODY LENGTH: 2”被记录,而不考虑我指定的内容。不用说,由于正文未完全阅读,这完全搞砸了请求。有人知道这种行为背后的原因吗?

最佳答案

我无法在独立测试用例中重现这一点。如果可以,请报告一个针对 OkHttp 的错误,并使用一个演示该问题的最小可执行测试用例。

关于java - OkHttp RequestBody 返回错误的内容长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32647760/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com