Spring boot 集成 okhttp3, 使用 http,https 在项目调用第三方服务是在所难免的,运用传统类型的Http调用,封装繁琐,代码量多还不简洁,避免一次一次的 找 度娘, 小记一下。
引入jar
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.10.0</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
OkRestClient 工具类
piublic class OkRestClient {
private static final Logger log = LoggerFactory.getLogger(OkRestClient.class);
private static final MediaType JSON = MediaType.parse("application/json; charset=utf-8");
private static final MediaType XML = MediaType.parse("application/xml; charset=utf-8");
private OkHttpClient okHttpClient;
public OkRestClient(OkHttpClient okHttpClient) {
this.okHttpClient = okHttpClient;
}
public String doGet(String url) {
return this.doGet(url, (Map)null, (Map)null);
}
public String doGetParams(String url, Map<String, String> params) {
return this.doGet(url, params, (Map)null);
}
public String doGetHeaders(String url, Map<String, String> headers) {
return this.doGet(url, (Map)null, headers);
}
public String doGet(String url, Map<String, String> params, Map<String, String> headers) {
StringBuilder sb = new StringBuilder(url);
if(params != null && params.keySet().size() > 0) {
boolean firstFlag = true;
Iterator _params = params.keySet().iterator();
while(_params.hasNect()) {
String key = (String)_params.next();
if(firstFlag) {
sb.append("?").append(key).append("=").append((String)params.get(key));
firstFlag = false;
} else {
sb.append("&").append(key).append("=").append((String)params.get(key));
}
}
}