java - partmap - upload files retrofit2
Retrofit 2 Método RequestBody writeTo() llamado dos veces (2)
La disminución del nivel de registro de BODY a HEADERS, BASIC o NONE resolvió este problema para mí
Retrofit 2 RequestBody writeTo () método llamado dos veces, el código que utilicé se da a continuación:
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);
La siguiente solución puede ser útil, aunque podría ser demasiado tarde. :pag
Retire HttpLoggingInterceptor
Object en su Api Client que no ejecutará la función writeTo () dos veces. Básicamente, HttpLoggingInterceptor
carga primero el búfer de datos (para fines de registro interno) llamando a writeTo () y luego llama a writeTo () para cargar los datos al servidor.
HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
logging.setLevel(HttpLoggingInterceptor.Level.BODY);
httpClient.addInterceptor(logging);