使用改造发送多部分文件:2.0.0-beta1
Posted
技术标签:
【中文标题】使用改造发送多部分文件:2.0.0-beta1【英文标题】:send multipart with files using retrofit:2.0.0-beta1 【发布时间】:2016-02-15 01:44:21 【问题描述】:我在向服务器发送 multipartRequest 时遇到问题。
RequestBody file = RequestBody.create(MediaType.parse("application/json"), myFile);
return apiService.updateProfile2(token, file);
@Multipart
@POST("/profile/update")
Call<RegistrationResponse> updateProfile2(@Header(value = "X-AUTH-TOKEN") String toke, @Part(value = "json") RequestBody json);
问题:
请求体是空的,当它来到服务器时
【问题讨论】:
你试过TypedFile
吗?
@RethinavelPillai 在 Retrofit 2.0 中没有 TypedFile
retrofit:2.0.0-beta1 不支持 TypedFile =(
可以发一下请求代码吗?
@Anderson C Silva 你的意思是这个 Call更新
Uploading files with Retorfit 2 and Multipart
原始的、离题的答案
http://www.codejava.net/java-se/networking/upload-files-by-sending-multipart-request-programmatically 这是一篇很好的文章,其中包含发送多部分的代码。这对我有用。
MultipartUtility multipart = new MultipartUtility(requestURL, charset);
multipart.addHeaderField("User-Agent", "CodeJava");
multipart.addHeaderField("Test-Header", "Header-Value");
multipart.addFormField("description", "Cool Pictures");
multipart.addFormField("keywords", "Java,upload,Spring");
multipart.addFilePart("fileUpload", uploadFile1);
multipart.addFilePart("fileUpload", uploadFile2);
List<String> response = multipart.finish();
System.out.println("SERVER REPLIED:");
for (String line : response)
System.out.println(line);
【讨论】:
但它没有使用 Retrofit 2.0.0-beta1。 谢谢!但是我只需要Retrfil,版本是2.0.0 -beta1!【参考方案2】:首先,您是否尝试将 mediaType “application/json” 发送为 @Multpart,如果您想发送 multpartfile,那么您是否需要更改代码中的某些内容。
类似这样的:
@Multipart
@POST("/profile/update")
Call<RegistrationResponse> updateProfile2(
@Header(value = "X-AUTH-TOKEN") String toke,
@Part("myfile\"; filename=\"image.png\" ") RequestBody file);
并将调用方法更改为:
RequestBody file = RequestBody.create(MediaType.parse("multipart/form-data"), myFile);
return apiService.updateProfile2(token, file);
【讨论】:
以上是关于使用改造发送多部分文件:2.0.0-beta1的主要内容,如果未能解决你的问题,请参考以下文章
使用 AJAX + 多部分表单数据 + UTF-8 编码发送文件和文本
使用 perl 发送带有文件附件的多部分文本/html 替代消息,
Spring Data Rest:如何使用请求正文发送多部分文件