|
@@ -2,6 +2,12 @@ package com.welampiot.utils;
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.apache.http.client.config.RequestConfig;
|
|
|
+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.impl.conn.PoolingHttpClientConnectionManager;
|
|
|
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
import java.io.BufferedReader;
|
|
@@ -99,55 +105,44 @@ public class WebUtils
|
|
|
return response.toString();
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 向指定URL发送GET方法的请求
|
|
|
- *
|
|
|
- * @param url 发送请求的URL
|
|
|
- * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
|
|
|
- * @return URL 所代表远程资源的响应结果
|
|
|
- */
|
|
|
- public static String requestGet(String url, String param) {
|
|
|
- StringBuilder result = new StringBuilder();
|
|
|
+ public static String requestGet(String url) {
|
|
|
+ CloseableHttpResponse response = null;
|
|
|
BufferedReader in = null;
|
|
|
+ String result = "";
|
|
|
+
|
|
|
+ PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();
|
|
|
+ cm.setMaxTotal(100);
|
|
|
+ cm.setDefaultMaxPerRoute(20);
|
|
|
+ cm.setDefaultMaxPerRoute(50);
|
|
|
+ CloseableHttpClient httpClient = HttpClients.custom().setConnectionManager(cm).build();
|
|
|
try {
|
|
|
- String urlNameString = url + "?" + param;
|
|
|
- URL realUrl = new URL(urlNameString);
|
|
|
- // 打开和URL之间的连接
|
|
|
- URLConnection connection = realUrl.openConnection();
|
|
|
- // 设置通用的请求属性
|
|
|
- connection.setRequestProperty("accept", "*/*");
|
|
|
- connection.setRequestProperty("connection", "Keep-Alive");
|
|
|
- connection.setRequestProperty("user-agent",
|
|
|
- "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
|
|
|
- // 建立实际的连接
|
|
|
- connection.connect();
|
|
|
- // 获取所有响应头字段
|
|
|
- Map<String, List<String>> map = connection.getHeaderFields();
|
|
|
- // 遍历所有的响应头字段
|
|
|
- for (String key : map.keySet()) {
|
|
|
- System.out.println(key + "--->" + map.get(key));
|
|
|
- }
|
|
|
- // 定义 BufferedReader输入流来读取URL的响应
|
|
|
- in = new BufferedReader(new InputStreamReader(
|
|
|
- connection.getInputStream()));
|
|
|
- String line;
|
|
|
+ HttpGet httpGet = new HttpGet(url);
|
|
|
+ RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(30000).setConnectionRequestTimeout(30000).setSocketTimeout(30000).build();
|
|
|
+ httpGet.setConfig(requestConfig);
|
|
|
+ httpGet.setConfig(requestConfig);
|
|
|
+ httpGet.addHeader("Content-type", "application/json; charset=utf-8");
|
|
|
+ httpGet.setHeader("Accept", "application/json");
|
|
|
+ response = httpClient.execute(httpGet);
|
|
|
+ in = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
|
|
|
+ StringBuffer sb = new StringBuffer("");
|
|
|
+ String line = "";
|
|
|
+ String NL = System.getProperty("line.separator");
|
|
|
while ((line = in.readLine()) != null) {
|
|
|
- result.append(line);
|
|
|
+ sb.append(line + NL);
|
|
|
}
|
|
|
- } catch (Exception e) {
|
|
|
- System.out.println("发送GET请求出现异常!" + e);
|
|
|
-// e.printStackTrace();
|
|
|
- }
|
|
|
- // 使用finally块来关闭输入流
|
|
|
- finally {
|
|
|
+ in.close();
|
|
|
+ result = sb.toString();
|
|
|
+ } catch (IOException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ } finally {
|
|
|
try {
|
|
|
- if (in != null) {
|
|
|
- in.close();
|
|
|
+ if (null != response) {
|
|
|
+ response.close();
|
|
|
}
|
|
|
- } catch (Exception e2) {
|
|
|
-// e2.printStackTrace();
|
|
|
+ } catch (IOException e) {
|
|
|
+ e.printStackTrace();
|
|
|
}
|
|
|
}
|
|
|
- return result.toString();
|
|
|
+ return result;
|
|
|
}
|
|
|
}
|