Android框架(2)| OkHttp

本節目錄
OkHttp簡介
OkHttp是Square公司開發的輕量級網路框架。它主要是使用在Android的網路方面。 OkHttp不僅在介面封裝上做的簡單易用,而且它的底層實現也是自成一派的,因此使用OkHttp能夠很好的代替Android原生的HTTPURLConnection。
框架地址: https://github.com/square/okhttp
配置OkHttp
使用OkHttp首先就是要新增依賴,我們在dependencies閉包中新增如下內容:
implementation 'com.squareup.okhttp3:okhttp:3.13.1'
因為OkHttp需要okio作為作為它的io元件,因此在新增依賴後系統會自動下載OkHttp庫和okio庫。
使用OkHttp
1.GET請求
首先我們來介紹使用OkHttp向伺服器傳送GET請求,我們將具體的操作步驟封裝在sendGETRequestWithOkHttp()方法中:
public void sendGETRequestWithOkHttp(){ new Thread(new Runnable() { @Override public void run() { try{ OkHttpClient okHttpClient = new OkHttpClient(); Request request = new Request().Builder().url("http://www.bing.com").build(); Response response = okHttpClient.newCall(request).execute(); String responseData = response.body().string();//獲得了返回的資料 }catch(Exception e){ e.printStackTrace(); } } }).start(); }
我們在sendGETRequestWithOkHttp()方法中是開啟了一個子執行緒來進行網路請求。使用OkHttp主要是分為4個步驟:
第一步:建立OkHttpClient例項。
第二步:建立一個Request物件。我們可以在這個物件的build()方法之前連綴其他的方法來豐富它。例如這裡我們就將bing的地址傳入到了url()方法當中。
第三步:呼叫OkHttpClient當中的newCall()方法並將request傳入,然後使用execute()方法來啟動並返回一個Response物件。
第四步:將Response物件轉換為String型別,這樣我們就可以對返回來的資料進行解析了。
2.POST請求
我們將POST請求操作封裝在sendPOSTRequestWithOkHttp()方法中:
public void sendPOSTRequestWithOkHttp(){ new Thread(new Runnable() { @Override public void run() { try{ OkHttpClient okHttpClient = new OkHttpClient(); RequestBody requestBody = new FormBody().Builder() .add("username","admin") .add("passsword","123456") .build(); Request request = new Request().Builder().url("http://www.bing.com").post(requestBody).build(); Response response = okHttpClient.newCall(request).execute(); String responseData = response.body().string(); }catch (Exception e){ e.printStackTrace(); } } }).start(); }
使用OkHttp的POST請求大體步驟和GET請求相似,只不過在這裡我們要多建立一個RequestBody例項來儲存我們需要請求的資訊,並且在Request物件中將資訊傳入到post()方法當中,這樣我們就完成了POST請求了。