|
@@ -0,0 +1,162 @@
|
|
|
+package cn.hnthyy.thmz.Utils;
|
|
|
+
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
|
|
|
+import org.apache.commons.httpclient.HttpClient;
|
|
|
+import org.apache.commons.httpclient.methods.PostMethod;
|
|
|
+import org.apache.commons.httpclient.methods.RequestEntity;
|
|
|
+import org.apache.commons.httpclient.methods.StringRequestEntity;
|
|
|
+import org.apache.commons.httpclient.params.HttpMethodParams;
|
|
|
+import org.apache.http.HttpEntity;
|
|
|
+import org.apache.http.HttpStatus;
|
|
|
+import org.apache.http.NameValuePair;
|
|
|
+import org.apache.http.client.ClientProtocolException;
|
|
|
+import org.apache.http.client.entity.UrlEncodedFormEntity;
|
|
|
+import org.apache.http.client.methods.CloseableHttpResponse;
|
|
|
+import org.apache.http.client.methods.HttpGet;
|
|
|
+import org.apache.http.client.methods.HttpPost;
|
|
|
+import org.apache.http.entity.StringEntity;
|
|
|
+import org.apache.http.impl.client.CloseableHttpClient;
|
|
|
+import org.apache.http.impl.client.HttpClients;
|
|
|
+import org.apache.http.message.BasicNameValuePair;
|
|
|
+import org.apache.http.util.EntityUtils;
|
|
|
+
|
|
|
+import java.io.BufferedReader;
|
|
|
+import java.io.IOException;
|
|
|
+import java.io.InputStream;
|
|
|
+import java.io.InputStreamReader;
|
|
|
+import java.nio.charset.StandardCharsets;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Iterator;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
+/**
|
|
|
+ * http 请求工具类
|
|
|
+ */
|
|
|
+@Slf4j
|
|
|
+public class HttpUtil {
|
|
|
+ /**
|
|
|
+ * get请求传输数据
|
|
|
+ *
|
|
|
+ * @param url
|
|
|
+ * @param encoding
|
|
|
+ * @return
|
|
|
+ * @throws ClientProtocolException
|
|
|
+ * @throws IOException
|
|
|
+ */
|
|
|
+ public static String sendHttpGet(String url, String encoding) throws ClientProtocolException, IOException {
|
|
|
+ String result = "";
|
|
|
+ // 创建httpclient对象
|
|
|
+ CloseableHttpClient httpClient = HttpClients.createDefault();
|
|
|
+ // 创建get方式请求对象
|
|
|
+ HttpGet httpGet = new HttpGet(url);
|
|
|
+ httpGet.addHeader("Content-type", "application/json");
|
|
|
+ // 通过请求对象获取响应对象
|
|
|
+ CloseableHttpResponse response = httpClient.execute(httpGet);
|
|
|
+ // 获取结果实体
|
|
|
+ // 判断网络连接状态码是否正常(0--200都数正常)
|
|
|
+ if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
|
|
|
+ result = EntityUtils.toString(response.getEntity(), "utf-8");
|
|
|
+ }
|
|
|
+ // 释放链接
|
|
|
+ response.close();
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * POST 请求
|
|
|
+ * @param url
|
|
|
+ * @param JSONBody
|
|
|
+ * @return
|
|
|
+ * @throws Exception
|
|
|
+ */
|
|
|
+ public static String sendHttpPost(String url, String JSONBody) throws Exception {
|
|
|
+ CloseableHttpClient httpClient = HttpClients.createDefault();
|
|
|
+ HttpPost httpPost = new HttpPost(url);
|
|
|
+ httpPost.addHeader("Content-Type", "application/json");
|
|
|
+ httpPost.setEntity(new StringEntity(JSONBody));
|
|
|
+ CloseableHttpResponse response = httpClient.execute(httpPost);
|
|
|
+// System.out.println(response.getStatusLine().getStatusCode() + "\n");
|
|
|
+ HttpEntity entity = response.getEntity();
|
|
|
+ String responseContent = EntityUtils.toString(entity, "UTF-8");
|
|
|
+// System.out.println(responseContent);
|
|
|
+ response.close();
|
|
|
+ httpClient.close();
|
|
|
+ return responseContent;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * POST 请求 非JSON 数据
|
|
|
+ * @param url
|
|
|
+ * @param requestParams
|
|
|
+ * @return
|
|
|
+ * @throws Exception
|
|
|
+ */
|
|
|
+ public static String requestOCRForHttp(String url, Map<String, String> requestParams) throws Exception {
|
|
|
+ String result = null;
|
|
|
+ CloseableHttpClient httpClient = HttpClients.createDefault();
|
|
|
+ /** HttpPost */
|
|
|
+ HttpPost httpPost = new HttpPost(url);
|
|
|
+ List<NameValuePair> params = new ArrayList<>();
|
|
|
+ Iterator<Map.Entry<String, String>> it = requestParams.entrySet().iterator();
|
|
|
+// System.out.println(params.toString());
|
|
|
+ while (it.hasNext()) {
|
|
|
+ Map.Entry<String, String> en = it.next();
|
|
|
+ String key = en.getKey();
|
|
|
+ String value = en.getValue();
|
|
|
+ if (value != null) {
|
|
|
+ params.add(new BasicNameValuePair(key, value));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ httpPost.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));
|
|
|
+ /** HttpResponse */
|
|
|
+ CloseableHttpResponse httpResponse = httpClient.execute(httpPost);
|
|
|
+ try {
|
|
|
+ HttpEntity httpEntity = httpResponse.getEntity();
|
|
|
+ result = EntityUtils.toString(httpEntity, "utf-8");
|
|
|
+ EntityUtils.consume(httpEntity);
|
|
|
+ } finally {
|
|
|
+ try {
|
|
|
+ if (httpResponse != null) {
|
|
|
+ httpResponse.close();
|
|
|
+ }
|
|
|
+ } catch (IOException e) {
|
|
|
+ log.info("## release resouce error ##" + e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * post请求,发送字符串参数
|
|
|
+ * @param url
|
|
|
+ * @param param
|
|
|
+ * @param contentType
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static String httpPost(String url, String param, String contentType) {
|
|
|
+ try {
|
|
|
+ HttpClient client = new HttpClient();
|
|
|
+ PostMethod post = new PostMethod(url);
|
|
|
+ RequestEntity entity = new StringRequestEntity(param, contentType, "UTF-8");
|
|
|
+ post.setRequestEntity(entity);
|
|
|
+ post.setRequestHeader("Content-Type", contentType);
|
|
|
+ post.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler());
|
|
|
+ post.getParams().setParameter(HttpMethodParams.SO_TIMEOUT, 5000);
|
|
|
+ client.executeMethod(post);
|
|
|
+ InputStream in = post.getResponseBodyAsStream();
|
|
|
+ BufferedReader reader = new BufferedReader(new InputStreamReader(in, StandardCharsets.UTF_8));
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
+ String temp;
|
|
|
+ while ((temp = reader.readLine()) != null)
|
|
|
+ sb.append(temp);
|
|
|
+ reader.close();
|
|
|
+ return sb.toString();
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+}
|