我正在使用retrofit将数据上传到服务器的图像(base64字符串)。现在我可以根据条件发送视频或图像,所以我想知道如何上传它,因为视频更重。如何使用我的其他数据上传视频。我之前用图像发送数据的方法是:
Map<String, Object> params = new HashMap<>();
params.put(URLParam.USER_ID, user.getId());
params.put(URLParam.MEDIA, mBase64String);
@Headers({"Accept: application/json", "Content-Type:application/json"})
@POST("/v1/address")
Call<ResponseBody> uploadPost(@Body Map<String, Object> params);
我如何发送视频
答案 0 :(得分:1)
Retrofit接口方法看起来像这样..
@Multipart
@POST("/your url/")
Call<ResultObject> uploadVidToServer(@Part MultipartBody.Part video);
以多部分发送文件,以便处理进度对话框 ...以获得更好的用户界面
然后按照以下方式进行改装: -
File videoFile = new File(pathToVideoFile);
RequestBody videoBody = RequestBody.create(MediaType.parse("video/*"), videoFile);
MultipartBody.Part vFile = MultipartBody.Part.createFormData("video", videoFile.getName(), videoBody);
pathToVideoFile
是文件的字符串路径
最后拨打电话
Call<ResultObject> uploadVideo = vInterface.uploadVidToServer(vFile);
uploadVideo .enqueue........
记住: -
从您要上传的视频文件中创建 requestBody 。
从 RequestBody对象创建MutlipartBody.Part对象。
然后拨打电话。