下列是必須的
導(dǎo)入依賴:compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
compile 'com.squareup.okhttp3:logging-interceptor:3.5.0'
具體版本根據(jù)AS來(lái)決定殿如,但必須是squareup公司的。
導(dǎo)入聯(lián)網(wǎng)權(quán)限:<uses-permission android:name="android.permission.INTERNET"/>
創(chuàng)建Retrofit對(duì)象,由于Retrofit是有構(gòu)建者模式來(lái)完成的扭粱,因此其創(chuàng)建的時(shí)候用build
代碼如下:
retrofit = new Retrofit.Builder()
.baseUrl("http://www.yuyigufen.com/")//表示你要請(qǐng)求的網(wǎng)址的Host部分晶乔,注意嗤谚,前面沒(méi)有"/",后面有"/"
.addConverterFactory(GsonConverterFactory.create())//添加轉(zhuǎn)換器工廠對(duì)象的序列化和反序列化结洼。這個(gè)必須要添加
.build();//構(gòu)建得到Retrofit對(duì)象锌畸,另外別的常用的就是可以.client()//添加一個(gè)客戶端對(duì)象
創(chuàng)建(得到)一個(gè)自定義的API端點(diǎn)接口的實(shí)現(xiàn)
首先泌辫,準(zhǔn)備實(shí)體類随夸,里面的屬性最好就是全部解析,其他的不需要特別的調(diào)整震放,全部解析就可以了宾毒。
在準(zhǔn)備自定義的接口
public interface MyInterface {
@POST("API/public/index/login/check.html")//這里展示的是post請(qǐng)求,這里面放的是path部分殿遂,后面不用添加"/"
public Call<ShiYan> getInfo(@QueryMap ArrayMap<String,String> params);
//Call<你自己寫的實(shí)體類>诈铛,
//@QueryMap 都是必須的
//params 表示后期添加的請(qǐng)求參數(shù)
}
可以得到API端點(diǎn)接口了
myInterface = retrofit.create(MyInterface.class);//得到API端點(diǎn)接口對(duì)象
params = new ArrayMap<>();//開(kāi)始配置請(qǐng)求參數(shù)
params.put("username","admin");//根據(jù)自定義的接口里面類型確定
params.put("password","admin");
得到API端點(diǎn)接口對(duì)象之后邪锌,將其設(shè)置
call = myInterface.getInfo(params);//call 其實(shí)是Call<ShiYan> call;
前面都是準(zhǔn)備工作。最后開(kāi)始執(zhí)行
可以選擇同步執(zhí)行癌瘾,可以選擇異步執(zhí)行觅丰,下面是異步執(zhí)行:
call.enqueue(new Callback<ShiYan>() {
@Override
public void onResponse(Call<ShiYan> call, Response<ShiYan> response) {
//這個(gè)是請(qǐng)求成功之后的回調(diào)。返回的是一個(gè)對(duì)象妨退,是你自己定義的實(shí)體類的對(duì)象
body = response.body();
// Toast.makeText(MainActivity.this,body.getUerID(),Toast.LENGTH_SHORT).show();
Log.d("flag","------"+body.getStatus());
Log.d("flag","------"+body.getInfo().getContent());
Log.d("flag","------"+body.getInfo().getUserID());
}
@Override
public void onFailure(Call<ShiYan> call, Throwable t) {
//這個(gè)是請(qǐng)求失敗的回調(diào)
Log.d("flag","不好意思失敗了");
Log.d("flag","ssssssssssssssssss"+t);
}
});
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者