我正在使用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'获取媒体文件,但我想知道在哪里使用它。
答案 0 :(得分:-1)
如果要发送图像,那么为什么媒体类型是text / plain?