本文地址
注入
在build.gradle(module:app)注入依賴
compile'com.squareup.retrofit2:retrofit:2.3.0'
入門
//清單文件,權(quán)限
<uses-permission android:name="android.permission.INTERNET" >
//自己編寫一個(gè)網(wǎng)路請(qǐng)求接口
public interface IApi {
@GET("https://www.baidu.com/")
Call<ResponseBody> get();
}
@Url <url請(qǐng)求地址>
@GET()
Call<ResponseBody> get(@Url String url);
上面兩種寫法等價(jià)俱饿,用@Url 標(biāo)簽更好漾狼,拓展性強(qiáng)
//最簡(jiǎn)單的Retrofit對(duì)象
Retrofit retrofit =newRetrofit.Builder().baseUrl("https://www.baidu.com/").build();
//初始化IApi
IApi api = retrofit.create(IApi.class);
//調(diào)用請(qǐng)求get方法
Call call = api.get("https://www.baidu.com/");
call 是回調(diào)類展东,用兩種回調(diào)方式:同步谈喳,異步
異步
call.enqueue(newCallback() {
@Override
public voidonResponse(Call call, Response response) {
Log.e("測(cè)試","---"+response.body().source());
}
@Override
public voidonFailure(Call call, Throwable t) {
Log.e("測(cè)試","---"+t.toString());
}
});
同步
call.execute();
一般在使用時(shí),都是使用異步回調(diào)比較多吧
事務(wù)中斷 :現(xiàn)在大部分網(wǎng)絡(luò)請(qǐng)求框架都支持事務(wù)中斷
call.cancel();
總結(jié)
就是想寫一篇自己能看得懂的文章,畢竟不是每個(gè)人都能弄清楚或者直接看懂源碼
總結(jié)以下幾點(diǎn)
1.Retrofit對(duì)象的創(chuàng)建是用到單例模式茬末,也就是說內(nèi)存里面有且僅存在一個(gè)Retrofit對(duì)象,所以Retrofit創(chuàng)建時(shí)候盖矫,你可以把它放在Application類里面調(diào)用就行了
2.Retrofit對(duì)象的baseUrl(url)方法是一定要寫的丽惭,不寫就報(bào)java.lang.IllegalStateException: Base URL required.異常
3.暫時(shí)想那么多