package com.fzzy.gateway.util;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.http.HttpEntity;
|
import org.apache.http.client.methods.CloseableHttpResponse;
|
import org.apache.http.client.methods.HttpGet;
|
import org.apache.http.impl.client.CloseableHttpClient;
|
import org.apache.http.impl.client.HttpClients;
|
import org.apache.http.util.EntityUtils;
|
|
import java.io.ByteArrayOutputStream;
|
import java.io.IOException;
|
import java.io.InputStream;
|
import java.net.HttpURLConnection;
|
import java.net.URL;
|
import java.net.URLEncoder;
|
import java.util.Map;
|
|
/**
|
* 网关专用HTTP请求工具类
|
*/
|
@Slf4j
|
public class GatewayHttpUtil {
|
|
private static final int TIMEOUT_IN_MILLIONS = 5000;
|
|
/**
|
* 执行GET请求
|
*
|
* @param url
|
* @param paramsMap
|
* @return
|
* @throws Exception
|
*/
|
public static String doGet(String url, Map<String, String> paramsMap) throws Exception {
|
CloseableHttpClient client = HttpClients.createDefault();
|
String responseText = "";
|
CloseableHttpResponse response = null;
|
try {
|
String getUrl = url + "?";
|
if (paramsMap != null) {
|
for (Map.Entry<String, String> param : paramsMap.entrySet()) {
|
// getUrl += param.getKey() + "=" + URLEncoder.encode(param.getValue(), "UTF-8") + "&";
|
getUrl += param.getKey() + "=" + URLEncoder.encode(param.getValue(), "UTF-8") + "&";
|
}
|
}
|
HttpGet method = new HttpGet(getUrl);
|
method.setHeader("Accept", "application/json");
|
method.setHeader("charset", "utf-8");
|
|
response = client.execute(method);
|
// response.setHeader("Accept", "application/json");
|
// response.setHeader("charset", "UTF-8");
|
|
HttpEntity entity = response.getEntity();
|
if (entity != null) {
|
responseText = EntityUtils.toString(entity, "UTF-8");
|
}
|
} catch (Exception e) {
|
log.error("http request failed--{}", e.getMessage());
|
} finally {
|
try {
|
if (null != response) response.close();
|
} catch (Exception e) {
|
log.error("", e);
|
}
|
}
|
return responseText;
|
}
|
|
public static String doGet(String urlStr) {
|
URL url = null;
|
HttpURLConnection conn = null;
|
InputStream is = null;
|
ByteArrayOutputStream baos = null;
|
try {
|
url = new URL(urlStr);
|
conn = (HttpURLConnection) url.openConnection();
|
conn.setReadTimeout(TIMEOUT_IN_MILLIONS);
|
conn.setConnectTimeout(TIMEOUT_IN_MILLIONS);
|
conn.setRequestMethod("GET");
|
conn.setRequestProperty("accept", "*/*");
|
conn.setRequestProperty("connection", "Keep-Alive");
|
conn.setRequestProperty("Content-Type", "application/json");
|
if (conn.getResponseCode() == 200) {
|
is = conn.getInputStream();
|
baos = new ByteArrayOutputStream();
|
int len = -1;
|
byte[] buf = new byte[128];
|
|
while ((len = is.read(buf)) != -1) {
|
baos.write(buf, 0, len);
|
}
|
baos.flush();
|
return baos.toString();
|
} else {
|
throw new RuntimeException(" responseCode is not 200 ... ");
|
}
|
|
} catch (Exception e) {
|
e.printStackTrace();
|
|
} finally {
|
try {
|
if (is != null)
|
is.close();
|
} catch (IOException e) {
|
}
|
try {
|
if (baos != null)
|
baos.close();
|
} catch (IOException e) {
|
}
|
conn.disconnect();
|
}
|
|
return null;
|
|
}
|
|
}
|