Android使用 Retrofit 2.X 上傳多文件和多表單示例
更新時間:2017年08月30日 09:02:22 作者:陪你嘮嗑
本篇文章主要介紹了Android使用 Retrofit 2.X 上傳多文件和多表單示例,具有一定的參考價值,有興趣的小伙伴一起來了解一下
retrofit post請求上傳表單和文件最重要的就是就是去構建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、構建body
public static Flowable<UploadImgBean> upload(List<File> fileList) { //構建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)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
android PopupWindow 和 Activity彈出窗口實現(xiàn)方式
本人小菜一個。目前只見過兩種彈出框的實現(xiàn)方式,第一種是最常見的PopupWindow,第二種也就是Activity的方式是前幾天才見識過,需要的朋友可以參考下2012-11-11Android隱私協(xié)議提示彈窗的實現(xiàn)流程詳解
這篇文章主要介紹了Android隱私協(xié)議提示彈窗的實現(xiàn)流程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧2023-01-01基于Android-Skin-Loader實現(xiàn)換膚效果
這篇文章主要為大家詳細介紹了基于Android-Skin-Loader實現(xiàn)換膚效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-03-03解決genymotion模擬器無法聯(lián)網(wǎng)的正確方法100%成功
android 5.1版不能聯(lián)網(wǎng),三個步驟的設置就可以解決你的genymotion模擬器無法聯(lián)網(wǎng)的問題2018-03-03Android實現(xiàn)類似iOS風格的對話框?qū)嵗a
通過本文給大家分享一個簡單的常用的對話框類,關于Android實現(xiàn)類似iOS風格的對話框?qū)嵗a大家通過本文學習下吧2017-09-09