關於技術文檔官網介紹得比較清楚了,我就不累贅了,下面給出我自己的一個使用案例。
**需求:**Java 代碼內部訪問其他服務器(帶http、https),需要其他服務器實現某功能,然後返回數據給Java當前項目。
**分析:**首先需要明白訪問的數據格式,其次是如何連接上目標服務器,然後如何接收數據,我的需求是發送一段文本給目標服務器,目標服務器返回處理結果。
環境:Java 1.8、OKHTTP3、spring boot
pom.xml依賴
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>3.2.0</version>
</dependency>
具體代碼:
import okhttp3.FormBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
//實例函數
/**
* 直接post鍵值 "name" : "value"
*
* */
@Override
public String post(String url , String params) {
OkHttpClient client = new OkHttpClient();
String anString = "";
//組裝鍵值,params爲鍵值,name爲屬性名
RequestBody formBody = new FormBody.Builder()
.add("name", params)
.build();
//組裝請求頭
Request request = new Request.Builder()
.url(url)
.post(formBody)
.build();
//該方法容易觸發IOException異常
try {
//獲取返回值
Response response = client.newCall(request).execute();
if(response.isSuccessful()) {
anString += response.body().string();
}else {
anString+="error!";
}
}catch(IOException ie) {
ie.printStackTrace();
}
return anString;
}