【发布时间】:2019-09-11 12:53:07
【问题描述】:
我正在使用 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”获取媒体文件,但我想知道在哪里使用它。
【问题讨论】:
-
您是否能够解决问题或找到罪魁祸首?
标签: android retrofit multipartform-data