Retrofit小細節

一、動態替換BaseUrl

在平時開發過程中,可能會遇到使用不同的BaseUrl請求的情況,比如我業務邏輯有一個url,然後請求資源(比如圖片)又是另外一個地址。這裏我的例子是wanandroid的api和必應的每日一圖接口(來自郭霖大佬:http://guolin.tech/api/bing_pic)下面有幾種方式不需要創建多個retrofit實例而實現動態切換baseUrl。

  • 官方方案
    使用@Url註解,然後把全路徑作爲參數傳入就可以替換請求全路徑而不需要baseUrl,由於需求比較簡單,我這裏採用的就是此方法.
    在這裏插入圖片描述

  • JessYan的RetrofitUrlManager
    一種很優雅的方式: RetrofitUrlManager

二、Retrofit接收非Json字符串

我這裏請求每日一圖接口,返回的直接是個String類型的url,然後就會報一個MalformedJsonException,這裏只需要增加一個轉換器,官方已經提供了。

  1. 首先引入依賴 com.squareup.retrofit2:converter-scalars:${version[“retrofitSdkVersion”]},
  2. 在retrofit配置中添加ScalarsConverterFactory轉換器,
  3. 用ResponseBody來接收就可以了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章