From d90888521c006f7f6cd8faf46f1829ebec0b0057 Mon Sep 17 00:00:00 2001
From: whycxzp <glperry@163.com>
Date: 星期二, 31 十二月 2024 16:54:32 +0800
Subject: [PATCH] 远程Http接口调用响应

---
 src/main/java/com/whyc/util/HttpUtil.java |  171 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 171 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/whyc/util/HttpUtil.java b/src/main/java/com/whyc/util/HttpUtil.java
index b3f9f8d..c14a632 100644
--- a/src/main/java/com/whyc/util/HttpUtil.java
+++ b/src/main/java/com/whyc/util/HttpUtil.java
@@ -3,6 +3,7 @@
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
 import com.google.gson.JsonSyntaxException;
+import com.whyc.dto.Response;
 import org.springframework.web.context.request.RequestContextHolder;
 import org.springframework.web.context.request.ServletRequestAttributes;
 
@@ -10,9 +11,15 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
+import java.io.*;
 import java.lang.reflect.Type;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
 import java.text.SimpleDateFormat;
 import java.util.Date;
+import java.util.Map;
 
 public class HttpUtil {
 
@@ -94,4 +101,168 @@
 		return t;
 	}
 
+	/**
+	 * get鏂瑰紡鐨刪ttp璇锋眰
+	 *
+	 * @param httpUrl 璇锋眰鍦板潃
+	 * @return 杩斿洖缁撴灉
+	 */
+	public static Response<String> doGet(String httpUrl, String queryParams) {
+		HttpURLConnection connection = null;
+		InputStream inputStream = null;
+		BufferedReader bufferedReader = null;
+		String result = null;// 杩斿洖缁撴灉瀛楃涓�
+		Response<String> response = new Response<>();
+		try {
+			// 鍒涘缓杩滅▼url杩炴帴瀵硅薄
+			URL url = new URL(new StringBuffer(httpUrl).append("?").append(queryParams).toString());
+			// 閫氳繃杩滅▼url杩炴帴瀵硅薄鎵撳紑涓�涓繛鎺ワ紝寮鸿浆鎴恏ttpURLConnection绫�
+			connection = (HttpURLConnection) url.openConnection();
+			// 璁剧疆杩炴帴鏂瑰紡锛歡et
+			connection.setRequestMethod("GET");
+			// 璁剧疆杩炴帴涓绘満鏈嶅姟鍣ㄧ殑瓒呮椂鏃堕棿锛�15000姣
+			connection.setConnectTimeout(5000);
+			// 璁剧疆璇诲彇杩滅▼杩斿洖鐨勬暟鎹椂闂达細60000姣
+			connection.setReadTimeout(6000);
+			// 鍙戦�佽姹�
+			connection.connect();
+			// 閫氳繃connection杩炴帴锛岃幏鍙栬緭鍏ユ祦
+			if (connection.getResponseCode() == 200) {
+				inputStream = connection.getInputStream();
+				// 灏佽杈撳叆娴侊紝骞舵寚瀹氬瓧绗﹂泦
+				bufferedReader = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8));
+				// 瀛樻斁鏁版嵁
+				StringBuilder sbf = new StringBuilder();
+				String temp;
+				while ((temp = bufferedReader.readLine()) != null) {
+					sbf.append(temp);
+					sbf.append(System.getProperty("line.separator"));
+				}
+				result = sbf.toString();
+				response.set(1,result);
+			}
+		} catch (IOException e) {
+			response.set(0);
+			String message = e.getMessage();
+			response.setData(message);
+		} finally {
+			// 鍏抽棴璧勬簮
+			if (null != bufferedReader) {
+				try {
+					bufferedReader.close();
+				} catch (IOException e) {
+					e.printStackTrace();
+				}
+			}
+			if (null != inputStream) {
+				try {
+					inputStream.close();
+				} catch (IOException e) {
+					e.printStackTrace();
+				}
+			}
+			if (connection != null) {
+				connection.disconnect();// 鍏抽棴杩滅▼杩炴帴
+			}
+		}
+		return response;
+	}
+
+	public static Response<String> doPost(String httpUrl, String requestBody) {
+		HttpURLConnection connection = null;
+		InputStream inputStream = null;
+		OutputStream outputStream =null;
+		BufferedReader bufferedReader = null;
+		String result = null;// 杩斿洖缁撴灉瀛楃涓�
+		Response<String> response = new Response<>();
+		try {
+			// 鍒涘缓杩滅▼url杩炴帴瀵硅薄
+			URL url = new URL(new StringBuffer(httpUrl).toString());
+			// 閫氳繃杩滅▼url杩炴帴瀵硅薄鎵撳紑涓�涓繛鎺ワ紝寮鸿浆鎴恏ttpURLConnection绫�
+			connection = (HttpURLConnection) url.openConnection();
+			// 璁剧疆杩炴帴鏂瑰紡锛歱ost
+			connection.setRequestMethod("POST");
+			// 璁剧疆杩炴帴涓绘満鏈嶅姟鍣ㄧ殑瓒呮椂鏃堕棿锛�15000姣
+			connection.setConnectTimeout(5000);
+			// 璁剧疆璇诲彇杩滅▼杩斿洖鐨勬暟鎹椂闂达細60000姣
+			connection.setReadTimeout(6000);
+
+			//璇锋眰浣�
+			connection.setDoOutput(true);
+			outputStream = connection.getOutputStream();
+			OutputStreamWriter osw = new OutputStreamWriter(outputStream,"UTF-8");
+
+			osw.write(requestBody);
+			osw.flush();
+			// 鍙戦�佽姹�
+			connection.connect();
+			// 閫氳繃connection杩炴帴锛岃幏鍙栬緭鍏ユ祦
+			if (connection.getResponseCode() == 200) {
+				inputStream = connection.getInputStream();
+				// 灏佽杈撳叆娴侊紝骞舵寚瀹氬瓧绗﹂泦
+				bufferedReader = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8));
+				// 瀛樻斁鏁版嵁
+				StringBuilder sbf = new StringBuilder();
+				String temp;
+				while ((temp = bufferedReader.readLine()) != null) {
+					sbf.append(temp);
+					sbf.append(System.getProperty("line.separator"));
+				}
+				result = sbf.toString();
+				response.set(1);
+				response.setData(result);
+			}
+		} catch (IOException e) {
+			String message = e.getMessage();
+			response.set(0);
+			response.setData(message);
+		} finally {
+			// 鍏抽棴璧勬簮
+			if (null != bufferedReader) {
+				try {
+					bufferedReader.close();
+				} catch (IOException e) {
+					e.printStackTrace();
+				}
+			}
+			if (null != inputStream) {
+				try {
+					inputStream.close();
+				} catch (IOException e) {
+					e.printStackTrace();
+				}
+			}
+			if (connection != null) {
+				connection.disconnect();// 鍏抽棴杩滅▼杩炴帴
+			}
+			if (null != outputStream) {
+				try {
+					outputStream.close();
+				} catch (IOException e) {
+					e.printStackTrace();
+				}
+			}
+		}
+		return response;
+	}
+
+	/**
+	 * 灏唌ap鍨嬭浆涓鸿姹傚弬鏁板瀷
+	 *
+	 * @param data
+	 * @return
+	 */
+	public static String urlEncode(Map<String, ?> data) {
+		StringBuilder sb = new StringBuilder();
+		for (Map.Entry<String, ?> i : data.entrySet()) {
+			try {
+				sb.append(i.getKey()).append("=").append(URLEncoder.encode(i.getValue() + "", "UTF-8")).append("&");
+			} catch (UnsupportedEncodingException e) {
+				e.printStackTrace();
+			}
+		}
+		String result = sb.toString();
+		result = result.substring(0, result.lastIndexOf("&"));
+		return result;
+	}
 }	

--
Gitblit v1.9.1