使用Retrofit 2.0上传文件

Héc*_*tor 8 android retrofit

我正在使用此方法将文件上传到我的服务器:

@Multipart
@POST("new")
Call<Response> send(@Part("myFile") byte[] file);
Run Code Online (Sandbox Code Playgroud)

我一直在阅读,有些人习惯TypedFile这样做,也许这比发送原始字节更容易,就像我正在做的那样.

TypedFile类是retrofit.mime包.但我没有.这个包已从2.0版本中删除了吗?或者我要添加另一个依赖项?哪一个?

谢谢.

Hel*_*405 19

在2.0中,您需要使用RequestBody而不是TypedFile.使用RequestBody获取文件

RequestBody file = RequestBody.create(MediaType.parse("image/*"), path);    
Run Code Online (Sandbox Code Playgroud)

在您的请求中使用它

@Multipart
@POST("new")
Call<Response> send(@Part("myFile") RequestBody file);
Run Code Online (Sandbox Code Playgroud)

更多信息https://github.com/square/retrofit/issues/1063