本篇文章包括以下內容:
- okhttp3是什么
- okhttp3工具類的演示(基於okhttp工具類的封裝)
- okhttp3工具類的封裝
使用作者的項目的原話:Android和Java應用程序的HTTP和HTTP / 2客戶端
其項目地址:https://github.com/square/okhttp
1、Get請求
2、Post請求
3、文件上傳
4、文件下載
由於okhttp3里面是依賴於okio進行開發的,所以務必將okio也引入;老年服飾
我們根據okhttp3的使用封裝了HttpUtils,用起來非常簡單,跟第三方平台Api使用一樣
這里使用response.body().string()返回響應結果內容
okhttp3采用構造者模式來實現的,下面是簡單的API介紹:
- Request.Builder 請求構造者
- url(String url):請求的url
- post():默認是Get方式
- post(RequestBody body):Post帶參數
- build():構造請求
請求參數有三種:
- RequestBody:普通的請求參數
- FormBody.Builder:以表單的方式傳遞鍵值對的請求參數
- MultipartBody.Builder:以表單的方式上傳文件的請求參數
執行方法:
- Call
- enqueue(Callback callback):異步請求
- execute():同步請求
創建HttpUtils工具類,由於okhttp3不建議創建多個對象,所以采用餓漢式的單例模式
okhttp3也提供了同步的請求方式,通過call.execute()方法,這里都使用異步來演示
如果在下載文件中需要進度的話,可以修改onResponse回調里面的內容就可以獲取進度
