Retrofit引數註解

2021-10-08 21:13:10 字數 3474 閱讀 3465

初始化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 使用 的方式,則需要使...