okhttp和第三方封裝好的OKHttp庫-okhttp-utils

1_OKHttp簡介

1.1_簡介

OKHttp是一款高效的HTTP客戶端,支持鏈接同一地址的連接共享同一個socket,經過鏈接池來減少響應延遲,還有透明的GZIP壓縮,請求緩存等優點,其核心主要有路由、鏈接協議、攔截器、代理、安全性認證、鏈接池以及網絡適配,攔截器主要是指添加,移除或者轉換請求或者回應的頭部信息

這個庫也是square開源的一個網絡請求庫(okhttp內部依賴okio)。如今已被Google使用在Android源碼上了,可見其強大。

關於網絡請求庫,如今應該還有不少人在使用android-async-http。他內部使用的是HttpClient,可是Google在6.0版本里面刪除了HttpClient相關API,可見這個庫如今有點過期了。android

 

1.2_下載地址

   http://square.github.io/okhttp/git

 

1.3_OKHttp主要功能

一、聯網請求文本數據
二、大文件下載
三、大文件上傳
四、請求圖片github

 

2_原生OKHttp的Get和Post請求思路

a.get請求步驟:緩存

1)獲取client對象安全

2)傳入url獲取request對象服務器

3)獲取response對象網絡

4)利用response對象的body().string()方法獲取返回的數據內容socket

 

b.post請求步驟:async

1)獲取client對象maven

2)傳入url獲取request對象,對比get方法,其還有在獲取request對象的時候加多一個post方法用於傳遞客戶端向服務器端發送的數據。

3)獲取response對象

4)利用response對象的body().string()方法獲取返回的數據內容

 

3_第三方封裝好的OKHttp庫-okhttp-utils

1_下載而且運行案例

https://github.com/hongyangAndroid/okhttp-utils

 

2_該案例導入以後會有報錯,而報錯處理爲:

在sample-okhttp中的build.gradle文件中

以下配置

 

allprojects {
    repositories {
        maven { url "https://jitpack.io" }
    }
}

 

 

 

3.okhttp-utils的使用步驟

1)將okhttp-utils集成到案例中

2)註釋掉okhttp庫和okio庫,由於okhttputils庫裏面自己就有okhttp庫和okio庫

3)明確咱們要用這個第三方工具用來幹嘛,從而使用相對應的方法。

 

4.利用okhttp-utils請求文本

a.get請求

1)自定義一個類,繼承StringCallback,用於獲取數據過程的提示和用於獲取到的數據的處理

2)直接利用OkHttpUtils的get().url("url").id().build().execute(new 自定義類)方法獲取數據,數據在自定義類中處理。注意:id是用於標記你是誰發過來的請求,也會在自定義類中進行判斷。

 

b.post請求

1)自定義一個類,繼承StringCallback,用於獲取數據過程的提示和用於獲取到的數據的處理

2)直接利用OkHttpUtils的post().url("url").id().build().execute(new 自定義類)方法獲取數據,數據在自定義類中處理。

注意:若是須要傳數據給服務器,就加多一個params()方法,而且傳入一個變量a,該變量的形式爲Map<String, String> ,咱們就能夠把咱們要傳入的數據,寫入到咱們的a中,而後

在傳a就能夠了。

 

5.利用okhttp-utils文件下載

步驟:直接調用OkHttpUtils的內置方法而且引用FileCallBack對象用於處理下載到的文件。注意:在實例化FileCallBack對象的時候會傳入你要下載的路徑和文件名。

注意:記得加權限

 

6.利用okhttp-utils文件上傳到服務器

步驟:

1)獲取文件對象,而且判斷該文件存不存在

2)自定義一個類,繼承StringCallback,用於監控請求服務的過程

3)直接利用OkHttpUtils的post().addFile().url("url").id().build().execute(new 自定義類)方法。

 

7.使用okhttp-utils請求圖片

步驟:跟上面的差很少,重點在須要使用BitmapCallback()對象。

相關文章
相關標籤/搜索