From 21a5d62894e6cca7d536ffcc1d63898ffaf16185 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期一, 25 二月 2019 11:41:17 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 utils/src/main/java/org/yeshi/utils/HttpUtil.java |   42 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 42 insertions(+), 0 deletions(-)

diff --git a/utils/src/main/java/org/yeshi/utils/HttpUtil.java b/utils/src/main/java/org/yeshi/utils/HttpUtil.java
index 8f60fd8..491f9f9 100644
--- a/utils/src/main/java/org/yeshi/utils/HttpUtil.java
+++ b/utils/src/main/java/org/yeshi/utils/HttpUtil.java
@@ -9,7 +9,9 @@
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.net.URLEncoder;
+import java.util.ArrayList;
 import java.util.Iterator;
+import java.util.List;
 import java.util.Map;
 
 import org.apache.commons.httpclient.Header;
@@ -24,6 +26,18 @@
 import org.apache.commons.httpclient.methods.multipart.Part;
 import org.apache.commons.httpclient.methods.multipart.StringPart;
 import org.apache.commons.io.FileUtils;
+import org.apache.http.HttpHost;
+import org.apache.http.auth.AuthScope;
+import org.apache.http.auth.UsernamePasswordCredentials;
+import org.apache.http.client.CredentialsProvider;
+import org.apache.http.client.config.RequestConfig;
+import org.apache.http.client.entity.UrlEncodedFormEntity;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.impl.client.BasicCredentialsProvider;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.util.EntityUtils;
 import org.yeshi.utils.entity.ProxyIP;
 
 import net.sf.json.JSONArray;
@@ -100,6 +114,7 @@
 		HttpClient client = new HttpClient();
 		if (ipInfo != null)
 			client.getHostConfiguration().setProxy(ipInfo.getIp(), ipInfo.getPort());
+		client.getHttpConnectionManager().getParams().setConnectionTimeout(5000);
 		try {
 			GetMethod method = new GetMethod(url);
 			if (headers != null) {
@@ -119,6 +134,33 @@
 		return "";
 	}
 
+	public static String get(String url, Map<String, String> headers, ProxyIP ipInfo, String userName,
+			String proxyPwd) {
+		CloseableHttpClient httpclient = null;
+		if (!StringUtil.isNullOrEmpty(userName)) {
+			CredentialsProvider credsProvider = new BasicCredentialsProvider();
+			credsProvider.setCredentials(new AuthScope(ipInfo.getIp(), ipInfo.getPort()),
+					new UsernamePasswordCredentials(userName, proxyPwd));
+			httpclient = HttpClients.custom().setDefaultCredentialsProvider(credsProvider).build();
+		} else
+			HttpClients.createDefault();
+		HttpHost proxy = null;
+		if (ipInfo.getPort() != 0 && ipInfo.getPort() != 80) {
+			proxy = new HttpHost(ipInfo.getIp(), ipInfo.getPort());
+		} else
+			proxy = new HttpHost(ipInfo.getIp());
+		RequestConfig config = RequestConfig.custom().setProxy(proxy).build();
+		HttpPost post = new HttpPost(url);
+		try {
+			post.setConfig(config);
+			CloseableHttpResponse response = httpclient.execute(post);
+			return EntityUtils.toString(response.getEntity());
+		} catch (Exception e) {
+			return null;
+		}
+
+	}
+
 	public static String getAsString(String url, String fromCharset, String toCharset) {
 		HttpClient client = new HttpClient();
 		GetMethod method = new GetMethod(url);

--
Gitblit v1.8.0