Retrofit 上傳多張圖片+多個(gè)字段文字表單

????????最近在開發(fā)一款類似探探一樣的APP,然后我是用php寫的后臺(tái)接口,前端我用安卓。雖然APP的功能就一個(gè)匹配算法難一點(diǎn),其他的就安卓了,然后我現(xiàn)在想做一個(gè)社區(qū)發(fā)表博客的功能,然后,現(xiàn)在的問(wèn)題是如何上傳多張圖片和多個(gè)字段的內(nèi)容。一般多個(gè)字段為? 用戶名、地址、發(fā)表時(shí)間、心情,圖片呢,一張或多張。我安卓用的是MVP架構(gòu)模式,這個(gè)模式對(duì)大家都不是很陌生,好,先上代碼!

API.class


其實(shí)我完成這個(gè)功能之前,踩了很多坑,@Body不可用和@Multipart,公用,不然出現(xiàn)以下報(bào)錯(cuò)!


然后呢!還有一些小問(wèn)題,@Body? @PartMap()??@Part 等注解的用處,大家呢,就自己去百度,可以點(diǎn)擊官網(wǎng)看看

我要上傳的東西有很多,我先展示數(shù)據(jù)庫(kù)字段


observe表是用戶的關(guān)注者的中間表,piclist是博客圖片表,關(guān)聯(lián)著post表和user表,然后post表呢,要關(guān)聯(lián)user表,現(xiàn)在我展示我的PHP借口代碼:


我的接口字段有四個(gè)文字字段,一個(gè)文件字段,博客分為文字博客和圖片博客,我都做了判斷

然后現(xiàn)在是我怎么把圖片上傳到服務(wù)器,這個(gè)是一個(gè)問(wèn)題,ok,我們開始

API service類我已經(jīng)鞋好了,但是我沒(méi)有解釋原因:

@PartMap() Map?<String,RequestBody>partMap? 參數(shù):我用來(lái)存儲(chǔ)文字字段信息

@Part List<MultipartBody.Part>? file 參數(shù):存儲(chǔ)文件字段

如果你是上傳單一文件,你把list去掉

我的Model

RetrofitUtil.class

然后是Present:


View中的方法

我們剛開始要新建Map集合,來(lái)存儲(chǔ)文字信息,然后我自己封裝了一個(gè)方法,將文字轉(zhuǎn)為RequestBody,進(jìn)行傳輸,你們可能問(wèn),為什么不用在API里面寫@Part注解,String類型做參數(shù)呢!

原因是,我愛(ài)咋寫就咋寫,你管我

然后存儲(chǔ)圖片的集合List

List list =new ArrayList<>();

選取圖片以后是不是要獲取路徑,然后轉(zhuǎn)換為File類型,存儲(chǔ)在RequestBody里面,然后再轉(zhuǎn)為MultipartBody.Part,然后add到集合

然后new出Present對(duì)象,進(jìn)行接口調(diào)用,然后暴露View接口方法,獲取傳輸?shù)臄?shù)據(jù),然后判斷,很簡(jiǎn)單

ok,前面的坑我踩完了,你們可以放心走了!?。。?/p>


這個(gè)是APP截圖


記住我,我是大二架構(gòu)師?。。。?!

不懂的可以加我微信:x1789780841或者QQ:1789780841 歡迎打擾?。?/p>

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 用兩張圖告訴你,為什么你的 App 會(huì)卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 13,913評(píng)論 2 59
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,761評(píng)論 25 709
  • 文/老貓 001 前不久,我們這個(gè)小地方居然發(fā)生了一件滅門慘案。房子的男女主人,來(lái)小住的女兒以及八個(gè)月大的外孫無(wú)一...
    老貓szq閱讀 2,817評(píng)論 18 12
  • 熱播電視劇《延禧攻略》終于播完,看網(wǎng)上的熱度下載看了幾集,之后果斷棄劇。為何?不喜歡女主。女主為了給姐姐報(bào)仇來(lái)到宮...
    mimi播報(bào)閱讀 620評(píng)論 1 3
  • 最近感觸比較深的一個(gè)主題是讀書,可以包括閱讀,或者朗讀,甚至誦讀。 1. 重啟博覽世界的閱讀模式 雖然很早就有總結(jié)...
    銀山閱讀 250評(píng)論 0 2

友情鏈接更多精彩內(nèi)容