retrofit+rxjava 上传文件


上传文件的方式 是post,请求接口有两种写法,记录一下:

/**
* 一般上传文件到服务器的话,都使用post
*/
@POST("aaaa/bb")
Observable upmeath1(@Body MultipartBody multipartBody);
//或者另一种写法

@Multipart
@POST("aaa/bbb")
Observable upmeath2(@Part List lists);

  参数为  List

上传图片举例子

List lists =new ArrayList<>();
lists.add(MultipartBody.Part.createFormData("token",app.getToken()));//上传 字段和值
File file=new File(filepath);//需要上传的文件的地址
if (!file.exists()) {//文件不存在
return;
}
RequestBody requestBody=RequestBody.create(MediaType.parse("image/png"),file);
MultipartBody.Part part=MultipartBody.Part.createFormData("图片键名","配置的图片的名字",requestBody);
lists.add(part);

参数为 MultipartBody:

MultipartBody.Builder builder=new MultipartBody.Builder();
//这里为了简单起见,没有判断file的类型
RequestBody requestBody=RequestBody.create(MediaType.parse("image/png"),filePath);//第二个参数文件的路径
builder.addFormDataPart("上传文件的键名","文件的名字",requestBody);//
builder.setType(MultipartBody.FORM);//设置上传的类型 文件(图片)
MultipartBody multipartbody=builder.build();




你可能感兴趣的:(retrofit+rxjava 上传文件)