使用Retrofit 2.0上传多部分图片时出现“流意外结束”错误-Android

时间:2019-04-22 09:57:23

标签: android retrofit multipartform-data

我正在使用Retrofit 2.0将图像上传到Android中的服务器。以下是界面代码。

    @Headers("Content-Type: multipart/form-data; boundary=MyMediaFormBoundary")
@Multipart
@POST("api/media/upload/v1")
Call<MyResponse> uploadMedia(@Header("authToken") String authToken,
                                      @Part("media_file\"; filename=\"media_file.jpg\" ") RequestBody filePart,
                                      @Part("media_format") RequestBody format,
                                      @Part("media_library_id") RequestBody noteId,
                                      @Part("media_title") RequestBody title);

这是我创建请求正文参数的代码

File file = new File(mediaFileUri.getPath());
                RequestBody fbody = RequestBody.create(MediaType.parse("image/*"), file);
                RequestBody formatBody = RequestBody.create(MediaType.parse("text/plain"), format);
                RequestBody titleBody = RequestBody.create(MediaType.parse("text/plain"), title);
                RequestBody idBody = RequestBody.create(MediaType.parse("text/plain"), id + "");

当我使用上述参数调用接口方法时,出现错误“蒸汽意外终止”,我想知道自己到底在做什么错。

我也尝试在上面的界面中使用经过改造的MultipartBody.Part对象,但结果仍然相同。

以下是我参考的链接: first link second link

注意:我怀疑这与错误的请求有关,但是后端团队没有得到太多帮助,它正在iOS上运行。我唯一拥有的信息是服务器端正在针对密钥'media_file'获取媒体文件,但我想知道在哪里使用它。

1 个答案:

答案 0 :(得分:-1)

如果要发送图像,那么为什么媒体类型是text / plain?