上传文件
// 把文件封装为RequestBody
RequestBody body = RequestBody.create(MediaType.parse("multipart/form-data"), file);
// 把RequestBody封装为MultipartBody.Part
MultipartBody.Part part = MultipartBody.Part.createFormData("pic", "image.png", body);
// 声明式请求
@Multipart
@POST("url")
Call<ResponseBody> uploadFile(
@Part("pic"; filename="image.png") RequestBody body,
@Part MultipartBody.Part part
);
其中,如果以RequestBody对象为参数,注解Part必须有参数;如果以MultipartBody.Part对象为参数,注解Part可以没参数,若有将覆盖MultipartBody.Part对象中的成员变量。
下载文件
// 声明式请求
@Streaming
@GET
Call<ResponseBody> download(@Url String fileUrl)