Android Retrofit的使用

前提:

添加聯(lián)網(wǎng)權(quán)限

<uses-permission android:name="android.permission.INTERNET" />

添加依賴我衬,同時(shí)添加GSON數(shù)據(jù)解析器

implementation 'com.squareup.retrofit2:converter-gson:2.4.0'

implementation 'com.squareup.retrofit2:retrofit:2.7.1'

GET請(qǐng)求:

例:請(qǐng)求如下接口:

(1)地址:http://49.232.114.172:8080/yunying/qufumanage/getList.json

(2)請(qǐng)求方式:get

(3)請(qǐng)求參數(shù):無

(4)返回結(jié)果:

{

"code":200,

"msg":"success",

"list":["趙錢孫李","周吳鄭王","馮陳褚衛(wèi)","蔣沈韓楊","朱秦尤許","何呂施張"]

}

第一步:構(gòu)建Retrofit?

Retrofit retrofit = new Retrofit.Builder().baseUrl("http://49.232.114.172:8080/")

? ? ? ? ? ? ? ? .addConverterFactory(GsonConverterFactory.create())

? ? ? ? ? ? ? ? .build();

第二步:接口定義,Call回調(diào)里放數(shù)據(jù)對(duì)應(yīng)的Bean

public interface APIRetrofit {

? @GET ("/yunying/qufumanage/getList.json")

? Call<GetBean> getBeanCall();

}

public class GetBean {

private int code;

private Stringmsg;

private Listlist;

public int getCode() {

return code;

}

public void setCode(int code) {

this.code = code;

}

public String getMsg() {

return msg;

}

public void setMsg(String msg) {

this.msg = msg;

}

public List getList() {

return list;

}

public void setList(List list) {

this.list = list;

}

}

第三步:利用retrofit創(chuàng)建APIRetrofit代理對(duì)象

APIRetrofit call = retrofit.create(APIRetrofit.class);

第四步:調(diào)用接口

? ? ? ? Call<GetBean> beanCall = call.getBeanCall();

? ? ? ? beanCall.enqueue(new Callback<GetBean>() {

? ? ? ? ? ? @Override

? ? ? ? ? ? public void onResponse(Call<GetBean> call, Response<GetBean> response) {

? ? ? ? ? ? ? ? //在獲取之前我們可以先判斷一下狀態(tài)

? ? ? ? ? ? ? ?//? if(response.code()== HttpURLConnection.HTTP_OK)

? ? ? ? ? ? ? ? GetBean body = response.body();

? ? ? ? ? ? ? ? Log.d("TAG",body.getMsg());

? ? ? ? ? ? ? ? Log.d("TAG",body.getCode()+"");

? ? ? ? ? ? }

? ? ? ? ? ? @Override

? ? ? ? ? ? public void onFailure(Call<GetBean> call, Throwable t) {

? ? ? ? ? ? }

? ? ? ? });


POST請(qǐng)求:

例:請(qǐng)求如下接口:

(1) 地址:http://49.232.114.172:8080/yunying/qufumanage/login.php

(2)請(qǐng)求方式:post

(3)請(qǐng)求參數(shù):”username”: “root” ?“password”:”root123456” (FormUrlEncoded表單形式)

(4)返回結(jié)果:

?{

????"code":200,

????"message":"success",

}

第一步:構(gòu)建Retrofit

Retrofit retrofit = new Retrofit.Builder().baseUrl("http://49.232.114.172:8080/")

? ? ? ? ? ? ? ? .addConverterFactory(GsonConverterFactory.create())

? ? ? ? ? ? ? ? .build();

第二步:接口定義橄维,Call回調(diào)里放數(shù)據(jù)對(duì)應(yīng)的Bean

public interface APIRetrofit {

@FormUrlEncoded

@POST ("/yunying/qufumanage/login.php")

Call<LoginBean>?getLogin(@Field("username") String username,@Field("password") String password);

}

public class LoginBean {

private int code;

private Stringmessage;

public int getCode() {

return code;

}

public void setCode(int code) {

this.code = code;

}

public String getMessage() {

return message;

}

public void setMessage(String message) {

this.message = message;

}

}

第三步:利用retrofit創(chuàng)建APIRetrofit代理對(duì)象

APIRetrofit call = retrofit.create(APIRetrofit.class);

第四步:調(diào)用接口

call?.enqueue(new Callback() {

@Override

? ? public void onResponse(Call call, Response response) {

//在獲取之前我們可以先判斷一下狀態(tài)

? ? ? ? //if(response.code()== HttpURLConnection.HTTP_OK)

? ? ? ? LoginBean body = response.body();

????????Log.d("TAG",body.getMessage());

????????Log.d("TAG",body.getCode()+"");

}

@Override

? ? public void onFailure(Call call, Throwable t) {

}

});

問題:

Error: Invoke-customs are only supported starting with Android O (--min-api 26)

Stack trace:

com.android.tools.r8.a: Invoke-customs are only supported starting with Android O (--min-api 26)

at com.android.tools.r8.dex.r.a(:289)

at com.android.tools.r8.dex.r.a(:98)

at com.android.tools.r8.dex.r.b(:188)

at com.android.tools.r8.dex.b.a(:63)

at com.google.commoncute(LoadExecutionStateStep.java:40)

僅從Android O開始支持調(diào)用自定義

在APP gradle 的android 里配置

? compileOptions{

? ? ? ? sourceCompatibility? JavaVersion.VERSION_1_8

? ? ? ? targetCompatibility JavaVersion.VERSION_1_8

? ? }

//TODO 加個(gè)todo 有時(shí)間繼續(xù)完善

看完給個(gè)贊吧~

筆芯~~~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市雷客,隨后出現(xiàn)的幾起案子唯蝶,更是在濱河造成了極大的恐慌操软,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,366評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件请毛,死亡現(xiàn)場離奇詭異志鞍,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)方仿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門固棚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來统翩,“玉大人,你說我怎么就攤上這事此洲〕Ш梗” “怎么了?”我有些...
    開封第一講書人閱讀 165,689評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵呜师,是天一觀的道長娶桦。 經(jīng)常有香客問我,道長汁汗,這世上最難降的妖魔是什么衷畦? 我笑而不...
    開封第一講書人閱讀 58,925評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮碰酝,結(jié)果婚禮上霎匈,老公的妹妹穿的比我還像新娘。我一直安慰自己送爸,他們只是感情好铛嘱,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著袭厂,像睡著了一般墨吓。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上纹磺,一...
    開封第一講書人閱讀 51,727評(píng)論 1 305
  • 那天帖烘,我揣著相機(jī)與錄音,去河邊找鬼橄杨。 笑死秘症,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的式矫。 我是一名探鬼主播乡摹,決...
    沈念sama閱讀 40,447評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼采转!你這毒婦竟也來了聪廉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,349評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤故慈,失蹤者是張志新(化名)和其女友劉穎板熊,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體察绷,經(jīng)...
    沈念sama閱讀 45,820評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡干签,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了拆撼。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片筒严。...
    茶點(diǎn)故事閱讀 40,127評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡丹泉,死狀恐怖情萤,靈堂內(nèi)的尸體忽然破棺而出鸭蛙,到底是詐尸還是另有隱情,我是刑警寧澤筋岛,帶...
    沈念sama閱讀 35,812評(píng)論 5 346
  • 正文 年R本政府宣布娶视,位于F島的核電站,受9級(jí)特大地震影響睁宰,放射性物質(zhì)發(fā)生泄漏肪获。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評(píng)論 3 331
  • 文/蒙蒙 一柒傻、第九天 我趴在偏房一處隱蔽的房頂上張望孝赫。 院中可真熱鬧,春花似錦红符、人聲如沸青柄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽致开。三九已至,卻和暖如春萎馅,著一層夾襖步出監(jiān)牢的瞬間双戳,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評(píng)論 1 272
  • 我被黑心中介騙來泰國打工糜芳, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留飒货,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,388評(píng)論 3 373
  • 正文 我出身青樓峭竣,卻偏偏與公主長得像塘辅,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子邪驮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容