標籤:模式 post請求 res serve 缺少檔案 href form 理解 多個
使用項目的原話:Android和Java中型別安全的HTTP用戶端
項目地址:https://github.com/square/retrofit
這裡Retrofit還需要匯入它的Gson依賴庫,因為返回的資料需要Gson來處理
1、Get請求
2、Post請求
3、單、多檔案上傳
示範提供的介面(該介面不支援post方式)
get請求(支援普通請求)
get請求(支援索引值對參數)
Post請求(支援索引值對參數)
Post請求(支援擷取返回的字串)
Post請求(上傳檔案和參數)
Retrofit的請求是以REST請求方式發送請求的,所以工具的封裝需要做兩件事
- 對REST請求的API進行封裝
- Retrofit自身的封裝
由於我們介面返回的JSON資料如下
所以這裡需要對我們需要解析的資料進行Bean對象的封裝
Retrofit使用註解的方式來聲明GET請求、POST請求、請求參數、要求標頭等進行的網路訪問,下面是各個註解的表示的意思
Get請求相關
- @Get:發送Get請求
- @Query:Get請求參數
- @QueryMap:Get請求Map參數
Post請求相關
- @Post:發送Post請求
- @FormUrlEncoded:採用表單的方式,一般與@Post共用
- @Field:Post請求參數
- @FieldMap:Post請求Map參數
Header請求相關
- @Headers:發送Header資訊
- @Header:Header資訊參數
- @HeaderMap:Header資訊的Map參數
Path請求相關
- @Path:訪問路徑,最終訪問[email protected]裡面的內容中年女裝品牌
理解完意思之後,編寫REST的API,其實就是請求介面,具體看下面的代碼
Retrofit和okHttp一樣,採用構造者模式建立,採用單例模式防止使用多個對象
上面代碼做了三件事
- 綁定請求URL
- 採用GSON來處理返回的JSON資料
- 建立並返回REST請求API介面iServer
下面就可以直接使用工具類拿到這個iServer,調用提供的介面方法
API介面的建立,比如說註冊功能,需要上傳兩張身份證照片,這是我自己伺服器的介面
- @PartMap:表示參數的上傳
- @Part:表示檔案清單
建立兩個方法輔助PartMap和Part的建立
到這裡,你就可以回過頭去看下文章開頭的示範部分,那裡就是RetrofitUtils的使用
由於檔案上傳是我在做項目的時候用上的,工具類缺少檔案上傳的內容,大家可以自行去拷貝代碼
Android實戰——Retrofit2的使用和封裝