retrofit+rxjava 上传文件

来源:互联网 发布:微波炉品牌选择 知乎 编辑:程序博客网 时间:2024/06/04 19:26


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

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

@Multipart
@POST("aaa/bbb")
Observable<Entity> upmeath2(@Part List<MultipartBody.Part> lists);

  参数为  List<MultipartBody.Part>

上传图片举例子

List<MultipartBody.Part> 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();




原创粉丝点击