通常在 Aplication,或者基類中,只須要調用一次便可,能夠配置調試開關,全局的超時時間,公共的請求頭和請求參數等信息
初始化須要一個Context,最好在Application#onCreate()中初始化,記得在manifest.xml中註冊Application。android
public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); } }
... <application android:name=".MyApplication" ... />
若是使用默認始化後,一切採用默認設置。若是你須要配置全局超時時間、緩存、Cookie、底層爲OkHttp的話,請看高級初始化。git
public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); EasyHttp.init(this);//默認初始化 } }
能夠進行超時配置、網絡緩存配置、okhttp相關參數配置、retrofit相關參數配置、cookie配置等,這些參數能夠選擇性的根據業務須要配置。github
public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); EasyHttp.init(this);//默認初始化,必須調用 //全局設置請求頭 HttpHeaders headers = new HttpHeaders(); headers.put("User-Agent", SystemInfoUtils.getUserAgent(this, AppConstant.APPID)); //全局設置請求參數 HttpParams params = new HttpParams(); params.put("appId", AppConstant.APPID); //如下設置的全部參數是全局參數,一樣的參數能夠在請求的時候再設置一遍,那麼對於該請求來說,請求中的參數會覆蓋全局參數 EasyHttp.getInstance() //能夠全局統一設置全局URL .setBaseUrl(Url)//設置全局URL // 打開該調試開關並設置TAG,不須要就不要加入該行 // 最後的true表示是否打印okgo的內部異常,通常打開方便調試錯誤 .debug("EasyHttp", true) //若是使用默認的60秒,如下三行也不須要設置 .setReadTimeOut(60 * 1000) .setWriteTimeOut(60 * 100) .setConnectTimeout(60 * 100) //能夠全局統一設置超時重連次數,默認爲3次,那麼最差的狀況會請求4次(一次原始請求,三次重連請求), //不須要能夠設置爲0 .setRetryCount(3)//網絡很差自動重試3次 //能夠全局統一設置超時重試間隔時間,默認爲500ms,不須要能夠設置爲0 .setRetryDelay(500)//每次延時500ms重試 //能夠全局統一設置超時重試間隔疊加時間,默認爲0ms不疊加 .setRetryIncreaseDelay(500)//每次延時疊加500ms //能夠全局統一設置緩存模式,默認是不使用緩存,能夠不傳,具體請看CacheMode .setCacheMode(CacheMode.NO_CACHE) //能夠全局統一設置緩存時間,默認永不過時 .setCacheTime(-1)//-1表示永久緩存,單位:秒 ,Okhttp和自定義RxCache緩存都起做用 //全局設置自定義緩存保存轉換器,主要針對自定義RxCache緩存 .setCacheDiskConverter(new SerializableDiskConverter())//默認緩存使用序列化轉化 //全局設置自定義緩存大小,默認50M .setCacheMaxSize(100 * 1024 * 1024)//設置緩存大小爲100M //設置緩存版本,若是緩存有變化,修改版本後,緩存就不會被加載。特別是用於版本重大升級時緩存不能使用的狀況 .setCacheVersion(1)//緩存版本爲1 //.setHttpCache(new Cache())//設置Okhttp緩存,在緩存模式爲DEFAULT才起做用 //能夠設置https的證書,如下幾種方案根據須要本身設置 .setCertificates() //方法一:信任全部證書,不安全有風險 //.setCertificates(new SafeTrustManager()) //方法二:自定義信任規則,校驗服務端證書 //配置https的域名匹配規則,不須要就不要加入,使用不當會致使https握手失敗 //.setHostnameVerifier(new SafeHostnameVerifier()) //.addConverterFactory(GsonConverterFactory.create(gson))//本框架沒有采用Retrofit的Gson轉化,因此不用配置 .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) .addCommonHeaders(headers)//設置全局公共頭 .addCommonParams(params)//設置全局公共參數 //.addNetworkInterceptor(new NoCacheInterceptor())//設置網絡攔截器 //.setCallFactory()//局設置Retrofit對象Factory //.setCookieStore()//設置cookie //.setOkproxy()//設置全局代理 //.setOkconnectionPool()//設置請求鏈接池 //.setCallbackExecutor()//全局設置Retrofit callbackExecutor //能夠添加全局攔截器,不須要就不要加入,錯誤寫法直接致使任何回調不執行 //.addInterceptor(new GzipRequestInterceptor())//開啓post數據進行gzip後發送給服務器 .addInterceptor(new CustomSignInterceptor());//添加參數簽名攔截器 } }