节选自: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();