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
對象有兩個關鍵的方法:execute
和 enqueue
。這兩個方法中,前者同步地發送請求,直接返回 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
接口做爲回調。方法名和參數名的含義很容易看出。對象