Android-Rxjava+Retrofit2.x 獲取Http狀態碼、響應頭(Headers)等數據

文章標題很明確,就是獲取Http網絡請求響應的頭信息。
可能我經過其餘方式也能夠獲取,可是爲了保持代碼的格式一致性,最終仍是找到了解決方法。網絡

直接上代碼:
Retrofit Service定義以下:ide

public interface CountryApiService {

    @GET("?")
    Observable
  
  
  

  
 
  
    > geoIp(); } 
   

 
  
  
  

  
 
  複製代碼 

 

CountryCodeModel數據模型是response body對應的數據類型,這不是重點。
重點是:Response
Response導入的包地址是:retrofit2.Responsethis

調用Retrofit定義的接口:spa

this.countryApiService.geoIp()
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Subscriber
  
  
  

  
 
  
    >() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { e.printStackTrace(); LogUtil.e("qxs", "獲取code失敗"); } @Override public void onNext(Response 
   
     countryCodeModelResponse) { LogUtil.e("qxs", "獲取code成功," + countryCodeModelResponse.code()); LogUtil.e("qxs", "獲取code成功," + countryCodeModelResponse.toString()); LogUtil.e("qxs", "獲取code成功," + countryCodeModelResponse.headers().toString()); LogUtil.e("qxs", "獲取code成功," + countryCodeModelResponse.body().toString()); } }); 
    
   

 
  
  
  

  
 
  複製代碼 

 

其實也很簡單,若是不想獲取Http狀態碼、頭信息等數據,可直接去掉Response泛型。code

不須要 獲取Http狀態碼、頭信息等數據,返回值泛型爲:接口

Observable
  
  
  

 複製代碼

須要 獲取Http狀態碼、頭信息等數據,返回值泛型爲:it

Observable
  
  
  

  
 
  
    > 
   

 
  
  
  

  
 
  複製代碼 

 

其它的代碼,我以爲都不須要再次粘貼了。io

相關文章
相關標籤/搜索