Retrofit2.0使用介紹

  • 準備工作
下列是必須的
導入依賴: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);
            }
        });
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,933評論 18 139
  • Retrofit項目Github主頁:點擊打開鏈接 Retrofit項目官方文檔 :點擊打開鏈接 1.設置 (1...
    千涯秋瑟閱讀 619評論 2 3
  • 寫在前面## 其實一直都沒有寫博客的習慣,借著這次公司內部分享的機會,開始寫博客,希望以后漸漸養成習慣。也方便以后...
    seph_von閱讀 899評論 0 1
  • 前言RxJava和Retrofit也火了一段時間了,不過最近一直在學習ReactNative和Node相關的姿勢,...
    AFinalStone閱讀 561評論 0 0
  • 前言 如果看Retrofit的源碼會發現其實質上就是對okHttp的封裝,使用面向接口的方式進行網絡請求,利用動態...
    李某人吖閱讀 2,082評論 0 0