Android OkHttp的基本使用

2021-10-04 21:15:44 字數 3380 閱讀 3395

對於android studio的使用者,可以在gradle上新增:    com.squareup.okhttp3:okhttp:3.2.0'

一、http get

對了網路載入庫,那麼最常見的肯定就是http get請求了,比如獲取乙個網頁的內容。

//建立okhttpclient物件

//建立乙個request

//建立乙個call

call call = client.newcall(request);

//把call加入排程

call.enqueue(new callback()

@override

public void onresponse(call call, response response) throws ioexception

});

以上就是傳送乙個get請求的步驟,首先構造乙個request物件,引數最起碼有個url,當然你可以通過request.builder設定更多的引數比如:headermethod等。

然後通過request的物件去構造得到乙個call物件,類似於將你的請求封裝成了任務,既然是任務,就會有execute()和cancel()等方法。

最後,我們希望以非同步的方式去執行請求,所以我們呼叫的是call.enqueue,將call加入排程佇列,然後等待任務執行完成,我們在callback中即可得到結果。

注意:1、onresponse(call call, response response)方法返回的不是ui現在,不能直接更新ui,需要用handler。

2、response.body().tostring();//獲取到的資料字串

response.body().bytes(); //二進位制位元組陣列

二、http post 攜帶引數

post攜帶引數,也僅僅是request的構造的不同。

注意:okhttp3非同步post請求和okhttp2.x有一些差別就是沒有formencodingbuilder這個類,替代它的是功能更加強大的formbody:

//建立okhttpclient物件

// formencodingbuilder builder = new formencodingbuilder();

requestbody body = new formbody.builder()

.add("name", "xiaoming").build();

request request = new request.builder()

call call = client.newcall(request);

call.enqueue(new callback()

@override

public void onresponse(call call, response response) throws ioexception

});

三、非同步上傳檔案

首先定義上傳檔案型別:

public static final mediatype mediatype = mediatype.parse("text/x-markdown; charset=utf-8");
將sdcard根目錄的test.txt檔案上傳到伺服器上:

}});五、非同步上傳multipart檔案

定義上傳檔案

Android OKHttp的高度封裝

連網框架有很多,那你可能問,為什麼不用其他的聯網開源框架呢?xutils okhttp volley android async http對比 從xutils 2.1.5版本到的xutils 3.0,使用起來也是蠻方便的,但xutils裡面包含的東西相對來說比較雜,有資料庫 快取 註解 網路請求等等...

Android OkHttp之post請求方法

android okhttp之post請求方法 簡要 專案中要使用okhttp網路框架,在build.gradle 中的dependencies 匯入okhttp的依賴 dependencies在androidmanifest.xml中新增網路請求許可權 說明一下,okhttp的使用原理在這就不多說...

android OKhttp 引數 傳遞陣列型別

android開發之okhttp上傳byte陣列 文章1 閱讀量3.6k,發布日期2018.10.24 使用httppost傳送 位元組流請求 byte 文章2 閱讀量5.6k,發布日期2019.1.2 有關使用http協議傳輸二進位制檔案 閱讀量1.1w,發布日期2015.7.21 android...