注:使用之前先依賴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...