RequestBody writeTo 执行两次问题(722)

在OkHttp里加入HttpLoggingInterceptor会调用了wirteTo方法,导致会再次执行UploadFileRequestBody.writeto方法重复写入数据。
通过调整拦截器等级可以解决这个问题。

val loggingInterceptor = HttpLoggingInterceptor(HttpLoggingInterceptor.Logger {
            // 打印retrofit日志
            Log.i("RetrofitLog", "retrofitBack = $it")
        })
        // 不要设置成BODY,会导致writeTo调用两次
loggingInterceptor.level = HttpLoggingInterceptor.Level.HEADERS

从BODY改成HEADERS解决了重复调用问题。

BASIC
 请求/响应行

HEADER
 请求/响应行 + 头

BODY
 请求/响应行 + 头 + 体

你可能感兴趣的:(RequestBody writeTo 执行两次问题(722))