使用retrofit2/okhttp上传大体积视频文件失败的可能原因

在一次开发视频上传的功能时发现小体积的视频能正常上传但稍大的(20M左右)就不行,而且没有任何报错信息。

后发现在上传大体积文件时logcat中不断在打印流内容(就是一堆看不懂的乱码),发现可能是因为okhttp的日志拦截器造成的。

检查okhttp的日志拦截器设置,将setLevel从HttpLoggingInterceptor.Level.BODY改为HttpLoggingInterceptor.Level.HEADERS,再次上传大体积视频就成功了。

原来就是日志拦截器设置为BODY级别时,在上传文件时会把所有信息读到log中,导致内存吃紧不断触发gc(也有可能触发oom),而无法走完拦截器的流程,导致数据无法向服务端发送。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容