Retrofit2.0網(wǎng)路框架

Retrofit是目前最流行的HTTP請(qǐng)求工具迟杂。

使用方法:

1.添加依賴:

compile 'com.squareup.retrofit2:retrofit:2.3.0'

2.定義一個(gè)接口,Retrofit會(huì)將該接口轉(zhuǎn)換成為HTTP請(qǐng)求

public interface APIService{
    @GET("api/getUser")
     Call<ResponseBody>  getUserInfo();
}

3.發(fā)起HTTP請(qǐng)求胜臊,獲取結(jié)果

//創(chuàng)建一個(gè)Retrofit客戶端
  Retrofit retrofit = new Retrofit.Builder()
          .baseUrl("XXXXXXXXX")
          .build();

  //得到一個(gè)APIService代理對(duì)象
  APIService apiService = retrofit.create(APIService.class);
//生成一個(gè)HTTP請(qǐng)求
  Call<ResponseBody> userInfo = apiService.getUserInfo();
  //最后馍资,就可以通過studentInfo對(duì)象獲取WebServer內(nèi)容
  //此處有兩種請(qǐng)求方法:同步調(diào)用膀捷,異步調(diào)用
  //這里使用的是異步調(diào)用方法
  userInfo.enqueue(new Callback<ResponseBody>() {
        @Override
        public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
            try {
                Log.i(TAG,response.body().string());
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        @Override
        public void onFailure(Call<ResponseBody> call, Throwable t) {
            Log.i(TAG, "onFailure: "+t);
        }
    });

進(jìn)階

上面方法獲取到的是JSON數(shù)據(jù),還要經(jīng)過手動(dòng)進(jìn)一步解析才能獲取所需內(nèi)容拿穴,
而Retrofit默認(rèn)只能解碼HTTP bodies到 OkHttp's ResponseBody類型泣洞,要想使
Retrofit支持其他類型轉(zhuǎn)換,必須通過Converters(數(shù)據(jù)轉(zhuǎn)換器)轉(zhuǎn)換默色。

1.添加Gson依賴:

compile 'com.squareup.retrofit2:converter-gson:2.2.0'

2.創(chuàng)建User類

 public class User {

    @SerializedName("userId")
    @Expose
    private String userId;
    @SerializedName("name")
    @Expose
    private String name;
    @SerializedName("age")
    @Expose
    private int age;

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return String.format("id:%s\nname:%s\nage:%d", userId, name, age);
    }
}

3.定義接口修改

public interface APIService{
    @GET("api/getUser")
     Call<User>  getUserInfo();
}

4.發(fā)起HTTP請(qǐng)求修改

//創(chuàng)建一個(gè)Retrofit客戶端
  Retrofit retrofit = new Retrofit.Builder()
          .baseUrl("XXXXXXXXXXX")
          //增加Gson轉(zhuǎn)換
          .addConverterFactory(GsonConverterFactory.create())
          .build();

  //得到一個(gè)APIService代理對(duì)象
  APIService apiService = retrofit.create(APIService.class);
//生成一個(gè)HTTP請(qǐng)求
  Call<User> userInfo = apiService.getUserInfo();
  userInfo.enqueue(new Callback<User>() {
      @Override
      public void onResponse(Call<User> call, Response<User> response) {
          User user = response.body();
          Log.i(TAG, user.toString());
      }

      @Override
      public void onFailure(Call<User> call, Throwable t) {
          Log.i(TAG, "onFailure: " + t);
      }
  });
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末球凰,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子腿宰,更是在濱河造成了極大的恐慌呕诉,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,591評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件酗失,死亡現(xiàn)場(chǎng)離奇詭異义钉,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)规肴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門捶闸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來夜畴,“玉大人,你說我怎么就攤上這事删壮√盎妫” “怎么了?”我有些...
    開封第一講書人閱讀 162,823評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵央碟,是天一觀的道長税灌。 經(jīng)常有香客問我,道長亿虽,這世上最難降的妖魔是什么菱涤? 我笑而不...
    開封第一講書人閱讀 58,204評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮洛勉,結(jié)果婚禮上粘秆,老公的妹妹穿的比我還像新娘。我一直安慰自己收毫,他們只是感情好攻走,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著此再,像睡著了一般昔搂。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上输拇,一...
    開封第一講書人閱讀 51,190評(píng)論 1 299
  • 那天摘符,我揣著相機(jī)與錄音,去河邊找鬼淳附。 笑死议慰,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的奴曙。 我是一名探鬼主播别凹,決...
    沈念sama閱讀 40,078評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼洽糟!你這毒婦竟也來了炉菲?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,923評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤坤溃,失蹤者是張志新(化名)和其女友劉穎拍霜,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體薪介,經(jīng)...
    沈念sama閱讀 45,334評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡祠饺,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了汁政。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片道偷。...
    茶點(diǎn)故事閱讀 39,727評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡缀旁,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出勺鸦,到底是詐尸還是另有隱情并巍,我是刑警寧澤,帶...
    沈念sama閱讀 35,428評(píng)論 5 343
  • 正文 年R本政府宣布换途,位于F島的核電站懊渡,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏军拟。R本人自食惡果不足惜剃执,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望吻谋。 院中可真熱鬧忠蝗,春花似錦、人聲如沸漓拾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽骇两。三九已至,卻和暖如春姜盈,著一層夾襖步出監(jiān)牢的瞬間低千,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評(píng)論 1 269
  • 我被黑心中介騙來泰國打工馏颂, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留示血,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,734評(píng)論 2 368
  • 正文 我出身青樓救拉,卻偏偏與公主長得像难审,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子亿絮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評(píng)論 2 354

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