Retrofit 網絡訪問框架簡單使用

1.引入遠程依賴:包括okhttp;retrofit2;retrofit的GSON解析器java

compile'com.squareup.okhttp3:okhttp:3.2.0'
compile'com.squareup.retrofit2:retrofit:2.0.2'
compile'com.squareup.retrofit2:converter-gson:2.0.2'

2.初始化okhttpclient(能夠設置更多的okhttp參數):git

OkHttpClient client=new OkHttpClient();

 

  若沒有初始化okhttp,retrofit默認也是使用okhttp的github

3.建立Retrofitapi

Retrofit retrofit=new Retrofit.Builder()
//設置OKHttpClient
.client(client)
//設置baseUrl,注意,baseUrl必須後綴"/"
.baseUrl("http://api.1396app.com/")
//添加Gson轉換器
.addConverterFactory(GsonConverterFactory.create())
.build();

4.建立請求服務接口(一個HTTPGET請求)網絡

public interface GitHubAPI{
  @GET("api/app/version")//這裏是跟在baseurl後面的,拼接起來完整的url=http://api.1396app.com/api/app/version
  Call<AppEntity> retrofitGet(@Query("id") String id);
}

   說明:@GET:聲明爲HTTPGET訪問方式;@GET()裏面是訪問的url,是跟baseurl合在一塊兒的;AppEntity是一個javabean,存放改接口放回的數據;@Query是Get請求的一種方式;@Query("id"),id是傳入的參數;後面String id,id是參數值。
  那麼拼起來完整的URL=http://api.1396app.com/api/app/version?id=203(@Query表示了?pargram=203 ,這種Get請求方式)
app

5.在Acitivity中進行網絡請求ide

GitHubAPI gitHubAPI=retrofit.create(GitHubAPI.class);
private void httpGet(GitHubAPI gitHubAPI){
  Call<AppEntity> httpGet=gitHubAPI.retrofitGet("592");
  httpGet.enqueue(new Callback<AppEntity>(){
  @Override
  public void onResponse(Call<AppEntity> call,Response<AppEntity> response){
  AppEntity appEntity=response.body();
  Log.e("MainActivity",response.toString());
    }

  @Override
  public void onFailure(Call<AppEntity>call,Throwablet){
  Log.e("MainActivity","false");
    }
  });
}

 更多:還在繼續學習學習

Retrofit項目主頁: http://square.github.io/retrofit/?spm=5176.100239.blogcont26705.4.HvebZh#introductionui

Retrofit2 徹底解析 探索與okhttp之間的關係:http://blog.csdn.net/lmj623565791/article/details/51304204url

相關文章
相關標籤/搜索