最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android Retrofit的簡單介紹和使用

 更新時(shí)間:2017年03月16日 17:17:03   作者:二萬萬  
這篇文章主要介紹了Android Retrofit的簡單介紹和使用

Retrofit與okhttp共同出自于Square公司,retrofit就是對(duì)okhttp做了一層封裝。把網(wǎng)絡(luò)請(qǐng)求都交給給了Okhttp,我們只需要通過簡單的配置就能使用retrofit來進(jìn)行網(wǎng)絡(luò)請(qǐng)求了,其主要作者是Android大神JakeWharton

導(dǎo)包:

compile 'com.squareup.retrofit2:retrofit:2.0.0-beta4'//Retrofit2所需要的包
compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta4'//ConverterFactory的Gson依賴包
compile 'com.squareup.retrofit2:converter-scalars:2.0.0-beta4'//ConverterFactory的String依賴包

*這里需要值得注意的是導(dǎo)入的retrofit2包的版本必須要一致,否則就會(huì)報(bào)錯(cuò)。

首先定義我們請(qǐng)求的Api,我們假設(shè)是這樣的

http://106.3.227.33/pulamsi/mobileLogin/submit.html

與Okhttp不同的是,Retrofit需要定義一個(gè)接口,用來返回我們的Call對(duì)象,這里示范的是Post請(qǐng)求:

public interface RequestServes {
  @POST("mobileLogin/submit.html")
  Call<String> getString(@Query("loginname") String loginname,
              @Query("nloginpwd") String nloginpwd);
}

Retrofit提供的請(qǐng)求方式注解有@GET和@POST,參數(shù)注解有@PATH和@Query等,我們只介紹常用的;前兩個(gè)顧名思義就是定義你的請(qǐng)求方式Get or Post,后面的@PATH指的是通過參數(shù)填充完整的路徑,一般用法:

@GET("{name}")
Call<User>
getUser(@Path("name") String name);

這里的參數(shù)username會(huì)被填充至{name}中,形成完整的Url請(qǐng)求地址,{name}相當(dāng)于一個(gè)占位符;

@Query就是我們的請(qǐng)求的鍵值對(duì)的設(shè)置,我們構(gòu)建Call對(duì)象的時(shí)候會(huì)傳入此參數(shù),

@POST("mobileLogin/submit.html")
  Call<String> getString(@Query("loginname") String loginname,
             @Query("nloginpwd") String nloginpwd);

這里@Query("loginname")就是鍵,后面的loginname就是具體的值了,值得注意的是Get和Post請(qǐng)求,都是這樣填充參數(shù)的;

接口寫完了之后我們需要來定義Retrofit對(duì)象來進(jìn)行請(qǐng)求了;

創(chuàng)建一個(gè)Retrofit 對(duì)象

Retrofit retrofit = new Retrofit.Builder()
        .baseUrl("http://106.3.227.33/pulamsi/")
        //增加返回值為String的支持
        .addConverterFactory(ScalarsConverterFactory.create())
        //增加返回值為Gson的支持(以實(shí)體類返回)
        .addConverterFactory(GsonConverterFactory.create())
        //增加返回值為Oservable<T>的支持
        .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
        .build();

這里的baseUrl加上之前@POST("mobileLogin/submit.html")定義的參數(shù)形成完整的請(qǐng)求地址;

addConverterFactory(ScalarsConverterFactory.create())的意思是構(gòu)建了一個(gè)返回支持,如果你的Call對(duì)象的泛型接收另外的格式需要添加另外的支持,上述代碼已經(jīng)列出;

接下來我們用這個(gè)Retrofit對(duì)象創(chuàng)建一個(gè)RequestSerives接口對(duì)象,也就是我們之前定義的那個(gè)接口,并且得到我們的Call對(duì)象;

RequestSerives requestSerives = retrofit.create(RequestSerives.class);//這里采用的是Java的動(dòng)態(tài)代理模式
Call<String> call = requestSerives.getString("userName", "1234");//傳入我們請(qǐng)求的鍵值對(duì)的值

利用得到的Call對(duì)象,然后我們就發(fā)出網(wǎng)絡(luò)請(qǐng)求了:

call.enqueue(new Callback<String>() {
  @Override
  public void onResponse(Call<String> call, Response<String> response) {
    Log.e("===","return:"response.body().toString());
  }
  @Override
  public void onFailure(Call<String> call, Throwable t) {
    Log.e("===","失敗");
  }
});

以上所述是小編給大家介紹的Android Retrofit的簡單介紹和使用,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

最新評(píng)論

灵璧县| 常州市| 安乡县| 鄂温| 胶南市| 华亭县| 霸州市| 柳林县| 达日县| 盖州市| 清河县| 浮山县| 米林县| 什邡市| 平邑县| 沙洋县| 德庆县| 道真| 蓬安县| 赣州市| 水富县| 长海县| 余姚市| 新兴县| 惠来县| 裕民县| 南宁市| 当阳市| 高密市| 双辽市| 汪清县| 天峻县| 偃师市| 卢湾区| 定安县| 泸西县| 连州市| 兴隆县| 阳朔县| 泾阳县| 濮阳市|