gpt4 book ai didi

java - Retrofit 2 RequestBody writeTo() 方法调用了两次

转载 作者:搜寻专家 更新时间:2023-10-30 21:17:39 30 4
gpt4 key购买 nike

Retrofit 2 RequestBody writeTo()方法调用了两次,我使用的代码如下:

ProgressRequestBody requestVideoFile = new ProgressRequestBody(videoFile, new ProgressRequestBody.UploadCallbacks() {

VideoUploadStore store = new VideoUploadStore();

@Override
public void onProgressUpdate(int percentage) {
if (!mIsCancelled) {
Log.i("UploadServiceManager", "Read Percentage : " + percentage);
data.setUploadPercentage(percentage);
store.updateUploadData(data);
}
}

@Override
public void onError() {
if(!mIsCancelled) {
data.setUploadPercentage(0);
store.updateUploadData(data);
}
}

@Override
public void onFinish() {

}
});
MultipartBody.Part multipartVideo = MultipartBody.Part.createFormData("File", videoFile.getName(), requestVideoFile);

最佳答案

下面的解决方案可能会帮助您解决问题,尽管可能为时已晚。 :p

删除 Api 客户端中的 HttpLoggingInterceptor 对象,它不会执行 writeTo() 函数两次。基本上,HttpLoggingInterceptor 通过调用首先加载数据缓冲区(用于内部日志记录目的) writeTo() 然后再次调用 writeTo() 将数据上传到服务器。

  HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
logging.setLevel(HttpLoggingInterceptor.Level.BODY);
httpClient.addInterceptor(logging);

关于java - Retrofit 2 RequestBody writeTo() 方法调用了两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40691610/

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