Retrofit2極簡教程

2021-08-11 18:43:16 字數 3898 閱讀 9291

注:使用之前先依賴retrofit(

compile

'com.squareup.retrofit2:retrofit:2.1.0'

compile

'com.squareup.retrofit2:converter-gson:2.1.0'),

定義好介面後,先進行初始化,以下是**,所有請求的方法最好寫在乙個介面中

retrofit

=new

retrofit.builder().

baseurl(

""

). //這一行的作用是,可以將response返回的結果直接轉化為物件的形式,必須依賴以上的第二個庫

addconverte***ctory(gsonconverte***ctory.

create

()).

build();

myinte***ce

=retrofit

.create(myinte***ce.

class

); 一:get請求

介面的寫法:

@get

("wx/getphone"

) 最常見的一種寫法,通過query來註解引數

callgetnumberbyget(

@query

("deviceid"

) string deviceid,

@query

("iccid"

) string iccid);

呼叫的寫法:

myinte***ce

.getnumberbyget(

"00000"

,"89860616010021146681"

).enqueue(

new

callback()

介面的寫法

,通過佔位符的形式將引數列出,@path註解的是形參

@get

("wx/getphone/")

callgetnumberbypath(

@path

("deviceid"

) string deviceid,

@path

("iccid"

) string iccid);

呼叫的寫法:

myinte***ce

.getnumberbypath(

"00000"

,"89860616010021146681"

).enqueue(

new

callback() {}

介面的寫法:將引數放進乙個map集合中

@get

("wx/getphone")

callgetmap(

@querymap

hashmapmap);

呼叫的寫法:

hashmapmap =

new

hashmap<>();

map.put(

"deviceid"

,"00000"

); map.put(

"iccid"

,"89860616010021146681"

); myinte***ce

.getmap(map).enqueue(

new

callback() {}

二:post請求:(1是上傳json,2,3是上傳表單)

介面的寫法:(上傳的是json)

@post

("wx/getphone")

callpostobject(

@body

result result);

呼叫的寫法:

myinte***ce

.postobject(

new

result(

"1"

,"2"

)).enqueue(

new

callback() {}

介面的寫法:(表單,通過map集合的形式上傳)

@formurlencoded

@post

("wx/getphone")

callpostmap(

@fieldmap

hashmapmap);

呼叫的寫法:

hashmapmap =

new

hashmap<>();

map.put(

"deviceid"

,"00000"

); map.put(

"iccid"

,"89860616010021146681"

); myinte***ce

.postmap(map).enqueue(

new

callback()

介面的寫法:(表單,類似於get請求的query

@formurlencoded

@post

("wx/getphone")

callpostform(

@field

("deviceid"

) string deviceid,

@field

("iccid"

) string fild);

呼叫的寫法:

myinte***ce

.postform(

"00000"

,"89860616010021146681"

).enqueue(

new

callback()

Retrofit2的簡單用法(一)

進來研究了一下比較火的請求框架 retrofit2 在retrofit的基礎上去其糟粕取其精華,具體的區別我在這就不一一舉例了,這篇文章只要是介紹一下retrofit2的簡單使用方法,和自己遇見的坑,不介紹深層次的東西。首先我用的是androidstduio 直接配置路徑就可以了,eclipse的同...

Retrofit2對https請求的實現(乾貨)

由於專案上傳到googleplay時被提醒傳輸資料方式不安全,故改用https加密傳輸。這裡我的專案裡用到retrofit2.2.0,但retrofit本身的okhttp不能直接請求證書不安全的https,所以得採取一些應急措施。首先我們在androidstudio裡的gradle依賴retrofi...

使用Retrofit2進行HTTP請求設定請求超時

採用retrofit2本身可以進行優雅的restful請求,但是無法設定請求超時時間,需要配合okhttp3來設定請求超時.新增依賴 compile com.squareup.okhttp3 logging interceptor 3.0.1 新增配置資訊並設定超時時間 connecttimeout...