使用改造将数据发送到带有数据的服务器

时间:2018-02-21 12:04:00

标签: android

我正在使用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);

我如何发送视频

1 个答案:

答案 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........

记住: -

  1. 从您要上传的视频文件中创建 requestBody

  2. RequestBody对象创建MutlipartBody.Part对象。

  3. 然后拨打电话。