文章標題很明確,就是獲取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