最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android使用 Retrofit 2.X 上傳多文件和多表單示例

 更新時間:2017年08月30日 09:02:22   作者:陪你嘮嗑  
本篇文章主要介紹了Android使用 Retrofit 2.X 上傳多文件和多表單示例,具有一定的參考價值,有興趣的小伙伴一起來了解一下

retrofit post請求上傳表單和文件最重要的就是就是去構(gòu)建RequestBody,今天為大家?guī)硪环N超級簡單的上傳方式

Body方式:

1、Retrofit接口RetrofitInterface

 @POST(URLConstant.URL_PATH)
  Flowable<UploadImgBean> upload(@Body RequestBody Body);

2、Retrofit的配置

private static RetrofitInterface getRetrofitInterface(String baseUrl) {
    if (retrofitInterface == null) {
      Retrofit retrofit = new Retrofit.Builder()
          .baseUrl(baseUrl)
          .addConverterFactory(GsonConverterFactory.create())
//        .addConverterFactory(ScalarsConverterFactory.create()) //string
          .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
          .build();
      retrofitInterface = retrofit.create(RetrofitInterface.class);
    }
    return retrofitInterface;
  }

3、構(gòu)建body

 public static Flowable<UploadImgBean> upload(List<File> fileList) {
    //構(gòu)建body
//addFormDataPart()第一個參數(shù)為表單名字,這是和后臺約定好的
    MultipartBody.Builder builder = new MultipartBody.Builder()
        .setType(MultipartBody.FORM)
        .addFormDataPart("username", "name") 
        .addFormDataPart("phone", "phone")
   //注意,file是后臺約定的參數(shù),如果是多圖,file[],如果是單張圖片,file就行
    for (File file : fileList) {
      //這里上傳的是多圖
      builder.addFormDataPart("file[]", file.getName(), RequestBody.create(MediaType.parse("image/*"), file));
    }
    RequestBody requestBody = builder.build();
    return getRetrofitInterface(URLConstant.URL_BASE).upload(requestBody);
  }

4、開始執(zhí)行上傳

HttpUtils.upload(mUploadFileList)
        .subscribeOn(Schedulers.io())
        .observeOn(AndroidSchedulers.mainThread())
        .subscribe(new DisposableSubscriber<UploadImgBean>() {
          @Override
          public void onNext(UploadImgBean uploadImgBean) {
            Log.i(TAG, "onNext: " ); 
            }
          }

          @Override
          public void onError(Throwable throwable) {
            Log.i(TAG, "onError: --->" + throwable.getMessage());
          }

          @Override
          public void onComplete() {
            Log.i(TAG, "onComplete: ");
          }
        });

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

黄梅县| 蓬溪县| 新民市| 临朐县| 廉江市| 云南省| 新闻| 安吉县| 祁门县| 武宁县| 竹山县| 大竹县| 梅州市| 贺州市| 镇雄县| 和平区| 鄯善县| 锡林浩特市| 高要市| 涡阳县| 秦皇岛市| 托克托县| 北辰区| 遂宁市| 扎鲁特旗| 马龙县| 广元市| 兴城市| 遵义县| 长泰县| 黄龙县| 息烽县| 台安县| 惠来县| 获嘉县| 弥渡县| 萝北县| 盈江县| 依兰县| 清新县| 莆田市|