下列是必須的
導入依賴: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'
具體版本根據AS來決定,但必須是squareup公司的。
導入聯網權限:<uses-permission android:name="android.permission.INTERNET"/>
創建Retrofit對象,由于Retrofit是有構建者模式來完成的,因此其創建的時候用build
代碼如下:
retrofit = new Retrofit.Builder()
.baseUrl("http://www.yuyigufen.com/")//表示你要請求的網址的Host部分,注意,前面沒有"/",后面有"/"
.addConverterFactory(GsonConverterFactory.create())//添加轉換器工廠對象的序列化和反序列化。這個必須要添加
.build();//構建得到Retrofit對象,另外別的常用的就是可以.client()//添加一個客戶端對象
創建(得到)一個自定義的API端點接口的實現
首先,準備實體類,里面的屬性最好就是全部解析,其他的不需要特別的調整,全部解析就可以了。
在準備自定義的接口
public interface MyInterface {
@POST("API/public/index/login/check.html")//這里展示的是post請求,這里面放的是path部分,后面不用添加"/"
public Call<ShiYan> getInfo(@QueryMap ArrayMap<String,String> params);
//Call<你自己寫的實體類>,
//@QueryMap 都是必須的
//params 表示后期添加的請求參數
}
可以得到API端點接口了
myInterface = retrofit.create(MyInterface.class);//得到API端點接口對象
params = new ArrayMap<>();//開始配置請求參數
params.put("username","admin");//根據自定義的接口里面類型確定
params.put("password","admin");
得到API端點接口對象之后,將其設置
call = myInterface.getInfo(params);//call 其實是Call<ShiYan> call;
前面都是準備工作。最后開始執行
可以選擇同步執行,可以選擇異步執行,下面是異步執行:
call.enqueue(new Callback<ShiYan>() {
@Override
public void onResponse(Call<ShiYan> call, Response<ShiYan> response) {
//這個是請求成功之后的回調。返回的是一個對象,是你自己定義的實體類的對象
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) {
//這個是請求失敗的回調
Log.d("flag","不好意思失敗了");
Log.d("flag","ssssssssssssssssss"+t);
}
});
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。