前置条件
在上传视频的功能模块中,涉及到视频、视频封面图片以及标题的上传,使用post请求上传
因此首先需要依赖okhttp库,在文件build.gradle(Module:你的项目名.app)的dependencies模块中添加
implementation("com.squareup.okhttp3:okhttp:4.9.3")
集成后在project视图中的External Libraries看到下图就可以使用了
使用
-
实例化一个OkHttpClient对象
OkHttpClient client = new OkHttpClient.Builder() .connectTimeout(60000, TimeUnit.MILLISECONDS) .readTimeout(60000, TimeUnit.MILLISECONDS) .build();
connectTimeout
是设置链接超时时间
readTimeout
是设置读超时时间
- 设置上传的文件类型
MediaType contentType = MediaType.parse("multipart/form-data");
我的格式为表单上传
-
根据视频地址获得视频文件加入RequestBody中(这里使用了sharedPreference存储信息)
//获得视频 String path=userInfo.getString("videoPath",""); File file=new File(path); RequestBody body = RequestBody.create(contentType, file);
-
根据图片地址获得图片文件加入RequestBody中
//获得图片 String imagePath=userInfo.getString("imagePath",""); File imageFile=new File(imagePath); RequestBody imageBody = RequestBody.create(contentType, imageFile);
-
文件上传:addFormDataPart的第一个参数,为后端接口的字段名
MultipartBody