retrofit2 -Multipart上传图片,文件, 带多参数上传

本文介绍了如何在Android MVP架构中使用Retrofit2和RxJava2实现上传图片功能,包括MultipartBody.Partfile和@PartMapMap参数的使用。重点展示了文件上传及请求参数的构造方法和调用过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 定义接口:

/**
     * 上传图片
     */
    @Multipart
    @POST("/xxxx/upload")
    Observable<UploadImgBean> upload(@Part() MultipartBody.Part file, @PartMap Map<String, RequestBody> map);
  •   @Part() MultipartBody.Part file 上传单个文件,也可以上传多个 --@PartMap Map<String, MultipartBody.Part> map
  •    @PartMap Map<String, RequestBody> map  请求参数     <>里面最后不要<String,String> 字符串会额外增加一组引号带来的异常

 请求:

 public void upload(File file, RxObservable rxObservable) {
        RequestBody requestBody = RequestBody.create(MediaType.parse("image/png"), file);
        MultipartBody.Part part = MultipartBody.Part.createFormData("file", file.getName(), requestBody);
        Map<String, RequestBody> map = new HashMap<>();
        map.put("token",RequestBody.create(null, String.valueOf(TokenUtils.getToken())));
        apiService()
                .upload(part,map)
                .compose(RxTransformerUtils.switchSchedulers(this))
                .subscribe(rxObservable);

    }

    retrofit2+rxjava2封装的Android mvp框架 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值