初始化retrofit
string base_url = "";
retrofit retrofit = new retrofit.builder()
.baseurl(base_url)
.build();
樣式1(乙個簡單的get請求)
news
@get("news")
callgetitem();
樣式2(url中有引數)
news/1
news/
@get("news/")
callgetitem(@path("newsid") string newsid);
或
news/1/型別1
news//
@get("news//")
callgetitem(@path("newsid") string newsid, @path("type") string type);
樣式3(引數在url問號之後)
news?newsid=1
news?newsid=
@get("news")
callgetitem(@query("newsid") string newsid);
或
news?newsid=1&type=型別1
news?newsid=&type=
@get("news")
callgetitem(@query("newsid") string newsid, @query("type") string type);
樣式4(多個引數在url問號之後,且個數不確定)
news?newsid=1&type=型別1...
news?newsid=&type=...
@get("news")
callgetitem(@querymap mapmap);
也可以
@get("news")
callgetitem(
@query("newsid") string newsid,
@querymap mapmap);
樣式1(需要補全url,post的資料只有一條reason)
comments/1
comments/
@formurlencoded
@post("comments/")
callreportcomment(
@path("newsid") string commentid,
@field("reason") string reason);
樣式2(需要補全url,問號後加入access_token,post的資料只有一條reason)
comments/1?access_token=1234123
comments/?access_token=
@formurlencoded
@post("comments/")
callreportcomment(
@path("newsid") string commentid,
@query("access_token") string access_token,
@field("reason") string reason);
樣式3(需要補全url,問號後加入access_token,post乙個body(物件))
comments/1?access_token=1234123
comments/?access_token=
@post("comments/")
callreportcomment(
@path("newsid") string commentid,
@query("access_token") string access_token,
@body commentbean bean);
樣式1(需要補全url)
comments/1
comments/
@delete("comments/")
calldeletenewscommentfromaccount(
@path("commentid") string commentid);
樣式2(需要補全url,問號後加入access_token)
comments/1?access_token=1234123
comments/?access_token=
@delete("comments/")
calldeletenewscommentfromaccount(
@path("commentid") string commentid,
@query("access_token") string access_token);
樣式3(帶有body)
);commentbody
:需要提交的內容,與post
中的body
相同
accounts/1
accounts/
@put("accounts/")
callupdateextras(
@path("accountid") string accountid,
@query("access_token") string access_token,
@body extrasbean bean);
@path:所有在**中的引數(url的問號前面),如:
accounts/
@query:url問號後面的引數,如:
comments?access_token=
@querymap:相當於多個@query
@field:用於post請求,提交單個資料
@body:相當於多個@field,以物件的形式提交
tips
@get
call> getactivitylist(
@url string url,
@querymap mapmap);
call> call = service.getactivitylist(
"", map);
Retrofit新手常用註解
看到一篇部落格講retrofit的各種註解,比較全面可以參考一下。這裡只講一下常用的幾個註解。舉個例子 登入 post api user auth call login query username string username,query password string password 這個是...
Retrofit 中文引數亂碼問題
中文使用者名稱登入,結果出錯,網上的結論說是 或是然鵝這會使你統一的請求引數攔截失效,具體原因上述鏈結裡有,就是 contenttypeoverridingrequestbody 替換了你的 formbody 所以你新增統一的請求引數就沒啦 那這個 charset utf 8 在哪加上去呢?前面的m...
Retrofit新增header引數的幾種方法。
1 使用註解的方式 新增乙個header引數 public inte ce userservice 新增多個header引數 public inte ce userservice get tasks callgettask path task id long taskid 2 使用 的方式,則需要使...