节选自:Retrofit2文件上传与下载
第二步:创建用于描述网络请求的接口
public interface Api {
/**
* 上传
* Multipart 这个注解代表多表单上传
*
* @param partList 表单信息
* @return .
*/
@Multipart
@POST("服务器地址(就创建retrofit设置的基站地址后面的具体地址)")
Call<BaseBean> upLoading(@Part List<MultipartBody.Part> partList);
}
第三步:创建表单,里面存储服务器本接口所需要的数据;
参数添加
MultipartBody.Builder builder = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
//在这里添加服务器除了文件之外的其他参数
.addFormDataPart("参数1", "值1")
.addFormDataPart("参数2", "值2");
创建文件(你需要上传到服务器的文件)
File file = new File(file1Location); //file1Location文件的路径 ,我是在手机存储根目录下创建了一个文件夹,里面放着了一张图片;
设置文件的格式
RequestBody imageBody = RequestBody.create(MediaType.parse("multipart/form-data"), file);
//添加文件(uploadfile就是你服务器中需要的文件参数)
builder.addFormDataPart("uploadfile", file.getName(), imageBody);
生成接口需要的list
List<MultipartBody.Part> parts = builder.build().parts();