我最喜歡的 Java HTTP Client:OkHttp 基本用法

先引入依賴

Mavenjava

<dependency>
  <groupId>com.squareup.okhttp3</groupId>
  <artifactId>okhttp</artifactId>
  <version>3.13.1</version>
</dependency>

Gradle異步

implementation('com.squareup.okhttp3:okhttp:3.13.1')

基本使用方法

建立 HTTP 客戶端ide

OkHttpClient c = new OkHttpClient();

構建請求post

Request request = new Request.Builder()
        .url("https://www.google.com")
        .get() // get post put 等
        .build();

生成一個 Call 對象ui

Call call = c.newCall(request);

Call 對象有兩個關鍵的方法:executeenqueue。這兩個方法中,前者同步地發送請求,直接返回 HTTP 響應;後者異步地發送請求,無返回值,經過回調返回執行結果。google

同步發送請求url

Response resp = null;
try {
    Response resp = call.execute();
} catch (IOException e) {
    //
} finally {
    if (resp != null) {
        resp.close(); // 別忘記關閉
    }
}

固然,因爲 OkHttp 要求 Java 7+ 版本,因此能夠這樣防止忘記關閉響應:code

try (Response response = call.execute()) {
    // 幹一些事情
}

異步發送請求:xml

call.enqueue(new Callback() {
    @Override
    public void onFailure(Call call, IOException e) {
        //
    }

    @Override
    public void onResponse(Call call, Response response) throws IOException {
        //
    }
});

此方法要求一個實現 Callback 接口做爲回調。方法名和參數名的含義很容易看出。對象

相關文章
相關標籤/搜索