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