Android 使用 okhttp3和retrofit2 進(jìn)行單文件和多文件上傳
前言
開發(fā)項(xiàng)目中需要進(jìn)行單文件多文件的上傳功能,下面演示的ApiResponse是自己分裝的返回值,要根據(jù)自己的項(xiàng)目來完成。使用的mvvm框架,kotlin協(xié)程。
看下大體思路和傳參形式,僅供參考
一、單文件上傳
1、apiService中
@Multipart @POST("xxxx/xxx") suspend fun upload( @Part part: MultipartBody.Part, @Query("code") code: String ): ApiResponse<String>
2、acivity代碼
val file = File(it) val requestBody: RequestBody = RequestBody.create(MediaType.parse("image/*"), file) val part = MultipartBody.Part.createFormData("file", file.getName(), requestBody) mViewModel.upload(part)
二、多文件上傳
1、apiservice中
@POST("xxx/xxxxs") suspend fun uploads( @Body part: MultipartBody, @Query("code") code: String ): ApiResponse<String>
2、acivity代碼
val builder = MultipartBody.Builder() builder.setType(MultipartBody.FORM) getDataList()?.filter { !it.filePath.isNullOrEmpty() }.forEach { val file = File(it.filePath) builder.addFormDataPart( "files", file.getName(), RequestBody.create(MediaType.parse("image/jpg"), file) ) } mViewModel.uploads(builder.build())
總結(jié)
記錄總結(jié),要根據(jù)自己的框架進(jìn)行參考改造。
到此這篇關(guān)于Android 使用 okhttp3和retrofit2 進(jìn)行單文件和多文件上傳的文章就介紹到這了,更多相關(guān)Android 單文件和多文件上傳內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android實(shí)現(xiàn)圓線按鈕進(jìn)度效果
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)圓線按鈕帶進(jìn)度,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-05-05Android下拉刷新SwipeRefreshLayout控件使用方法
這篇文章主要介紹了Android下拉刷新SwipeRefreshLayout控件使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11Kotlin Service服務(wù)組件開發(fā)詳解
這幾天分析了一下的啟動過程,于是乎,今天寫一下Service使用; 給我的感覺是它并不復(fù)雜,千萬不要被一坨一坨的代碼嚇住了,雖然彎彎繞繞不少,重載函數(shù)一個(gè)接著一個(gè),就向走迷宮一樣,但只要抓住主線閱讀,很快就能找到出口2022-12-12詳解Android首選項(xiàng)框架的使用實(shí)例
首選項(xiàng)這個(gè)名詞對于熟悉Android的朋友們一定不會感到陌生,它經(jīng)常用來設(shè)置軟件的運(yùn)行參數(shù)。本篇文章主要介紹詳解Android首選項(xiàng)框架的使用實(shí)例,有興趣的可以了解一下。2016-11-11Android中使用PagerSlidingTabStrip實(shí)現(xiàn)導(dǎo)航標(biāo)題的示例
本篇文章主要介紹了Android中使用PagerSlidingTabStrip實(shí)現(xiàn)導(dǎo)航標(biāo)題的示例,具有一定的參考價(jià)值,有興趣的可以了解一下。2017-01-01