依赖包:
<!-- http -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.4</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.4</version>
</dependency>
private static String executeBaseGet(String url, Map<String, String> params, Map<String, String> headerParams) {
String apiUrl = url;
CloseableHttpClient client = HttpClients.createDefault();
try {
HttpResponse res;
try {
//参数
if (params != null && params.size() > 0) {
int i = 0;
StringBuffer param = new StringBuffer();
for (String key : params.keySet()) {
if (i == 0)
param.append("?");
else
param.append("&");
param.append(key).append("=").append(params.get(key));
i++;
}
apiUrl += param;
}
log.info("[get request]" + apiUrl);
HttpGet get = new HttpGet(apiUrl);
//header
if (headerParams != null && headerParams.size() > 0) {
for (String key : headerParams.keySet()) {
get.addHeader(key, headerParams.get(key));
}
}
RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(TIMEOUTMILLIS).setConnectTimeout(TIMEOUTMILLIS).build();
get.setConfig(requestConfig);
res = client.execute(get);
if (res.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {
log.error("[get request] apiUrl:{}, error!Status:{}", apiUrl, res.getStatusLine().getStatusCode());
throw new RuntimeException("http get error statusCode=" + res.getStatusLine().getStatusCode());
}
HttpEntity entity = res.getEntity();
String response = EntityUtils.toString(entity, "UTF-8");
log.info("[get response] :{}", response);
return response;
} catch (ParseException e) {
log.error("[get request] apiUrl:{}, error:{}", apiUrl, e.getMessage());
throw new RuntimeException(e);
} catch (IOException e) {
log.error("[get request] apiUrl:{}, error:{}", apiUrl, e.getMessage());
throw new RuntimeException(e);
}
} finally {
try {
client.close();
} catch (IOException e) {
log.error("CloseableHttpClient 关闭异常", e);
}
}
}