使用Retrofit2+rxjava上传图片 并且上传包含图片信息的json字符串。

接口文档需要传两个参数 file file(代表上传的文件) String  parameter(代表图片的信息json的字符串)。

在retrofit2中上传文件使用的是 @Part MultipartBody.Part file 然后图片信息的字符串是 @Part(“parameter”) RequestBody parameter(括号中的key值和文档的key值要一样)。

//头像上传
    @Multipart
    @POST("url")
    Observable<BaseResponse<PhotoUploadBean>> upload(@Part("parameter") RequestBody parameter, @Part MultipartBody.Part file);

构建MultipartBody(注意:下面createFormData()方法中的第一个参数需要和接口文档的文件的key值一样)。

File file = new File(path);
RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file);
MultipartBody.Part part = MultipartBody.Part.createFormData("file", "tx", requestFile);

构建图片信息RequestBody

RequestBody description = RequestBody.create(MediaType.parse("multipart/form-data"), “我是图片”);

然后正常调用retrofit的方法上传就行了,此处我就不贴代码了。

注意两点:1.上传文件是用的@Part MultipartBody.Part。
2.key值要和文档的key值一样,不然后台解析不到。(之前就掉这个坑里,被坑了半天。)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值