Java OkHttp RequestBody返回错误的内容长度
我有一个应用程序,我用它来执行带有body的网络请求,但是返回的内容长度是完全错误的。作为问题的一个例子,有以下情况:Java OkHttp RequestBody返回错误的内容长度,java,android,rest,okhttp,Java,Android,Rest,Okhttp,我有一个应用程序,我用它来执行带有body的网络请求,但是返回的内容长度是完全错误的。作为问题的一个例子,有以下情况: public static RequestBody createNewTokenBody(final String redirectUri, final String code, final String clientId, final String
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);
}
});
“请求正文长度:2”将被记录,而与我指定的内容无关。不用说,这完全搞乱了请求,因为正文没有完全阅读。有人知道这种行为背后的原因吗?我无法在独立的测试用例中重现这种情况。如果可以,请报告一个针对OkHttp的错误,并提供一个演示该问题的最小可执行测试用例。我无法在独立测试用例中重现此错误。如果可以,请报告一个针对OkHttp的错误,并提供一个演示该问题的最小可执行测试用例。如果需要该错误以供将来参考,则在Reformation-2 beta1中报告为错误,并且已在当前快照中修复
如果将来需要它作为参考,这在改装-2 beta1中被报告为一个错误,并且在当前快照中已经修复
我是steel Get-1…我在使用compile'com.squareup.okhttp:okhttp:2.4.0'我是steel Get-1…我在使用compile'com.squareup.okhttp:okhttp:2.4.0'