Retrofit2.0 上传视频的用法和上传大体积视频会OOM

tech2024-05-22  72

用法很简单: 我直接贴代码:

@Multipart // 不可缺少 @POST("api/attch/cdn") fun upload(@Part vararg parts: MultipartBody.Part): Observable<BaseApiResult<UploadResp>> fun uploadVideo(file: File) : Observable<ZflBaseApiResult<UploadResp>> { val requestBody = RequestBody.create(MediaType.parse("video/*"),file) // "file"这个 name 要和后端约定好 val part = MultipartBody.Part.createFormData("file", file.name, requestBody) return mService.upload(part) }

具体使用就是调用上面的 uploadVideo 方法,这些都没什么问题。

为什么上传大体积的视频会报OOM

如果你在配置请求时,添加了打印日志,且类型为BODY addInterceptor(new HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY)),那么就会在 logcat 中 看到一堆类似于乱码的东西。

解决方法就是 : 把类型 BODY 改为 HEADERS

最新回复(0)