From ab849f796bdc17236a95ea5fe5c166fb8f24a75c Mon Sep 17 00:00:00 2001 From: sws <15810472099@163.com> Date: 星期六, 26 十一月 2022 16:12:02 +0800 Subject: [PATCH] 1 --- src/main/java/com/lf/server/helper/RestHelper.java | 254 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 254 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/lf/server/helper/RestHelper.java b/src/main/java/com/lf/server/helper/RestHelper.java new file mode 100644 index 0000000..dfd48d8 --- /dev/null +++ b/src/main/java/com/lf/server/helper/RestHelper.java @@ -0,0 +1,254 @@ +package com.lf.server.helper; + +import com.lf.server.entity.all.StaticData; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.http.HttpEntity; +import org.apache.http.NameValuePair; +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.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.util.EntityUtils; +import org.springframework.web.client.RestTemplate; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.PrintStream; +import java.net.HttpURLConnection; +import java.net.URL; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +/** + * Rest鏈嶅姟甯姪绫� + * @author WWW + */ +public class RestHelper { + private static RestTemplate restTemplate; + + private final static Log log = LogFactory.getLog(RestHelper.class); + + /** + * 鑾峰彇RestTemplate + * + * @return RestTemplate + */ + public static RestTemplate getRestTemplate() { + if (restTemplate == null) { + restTemplate = SpringContextHelper.getBean(RestTemplate.class); + } + + return restTemplate; + } + + /** + * Get璇锋眰-HttpURLConnection + * + * @param url URL鍦板潃 + * @return 瀛楃涓� + * @throws IOException IO寮傚父 + */ + public static String getForConn(String url) throws IOException { + BufferedReader br = null; + HttpURLConnection conn = null; + + try { + URL restUrl = new URL(url); + + conn = (HttpURLConnection) restUrl.openConnection(); + // POST,GET,PUT,DELETE + conn.setRequestMethod("GET"); + conn.setRequestProperty("Accept", "application/json"); + + br = new BufferedReader(new InputStreamReader(conn.getInputStream())); + + String line; + StringBuilder sb = new StringBuilder(); + while ((line = br.readLine()) != null) { + sb.append(line); + } + + return sb.toString(); + } finally { + if (br != null) { + br.close(); + } + if (conn != null) { + conn.disconnect(); + } + } + } + + /** + * Post璇锋眰-HttpURLConnection + * + * @param url URL鍦板潃 + * @param query 鏌ヨ鏉′欢 + * @return 瀛楃涓� + * @throws IOException IO寮傚父 + */ + public static String postForConn(String url, String query) throws IOException { + BufferedReader br = null; + HttpURLConnection conn = null; + + try { + URL restUrl = new URL(url); + + conn = (HttpURLConnection) restUrl.openConnection(); + // POST,GET,PUT,DELETE + conn.setRequestMethod("POST"); + conn.setRequestProperty("Content-Type", "application/json"); + conn.setDoOutput(true); + + PrintStream ps = new PrintStream(conn.getOutputStream()); + ps.print(query); + ps.close(); + + // OutputStream out = conn.getOutputStream() + // out.write(query.getBytes()) + // out.close() + + br = new BufferedReader(new InputStreamReader(conn.getInputStream())); + + String line; + StringBuilder sb = new StringBuilder(); + while ((line = br.readLine()) != null) { + sb.append(line); + } + + return sb.toString(); + } finally { + if (br != null) { + br.close(); + } + if (conn != null) { + conn.disconnect(); + } + } + } + + /** + * Get璇锋眰-CloseableHttpClient + * + * @param uri Uri鍦板潃 + * @return 鍝嶅簲瀛楃涓� + */ + public static String get(String uri) { + try { + CloseableHttpClient httpClient = HttpClients.custom().build(); + + HttpGet httpGet = new HttpGet(uri); + + CloseableHttpResponse closeResponse = httpClient.execute(httpGet); + // 鍙栧嚭杩斿洖浣� + HttpEntity entity = closeResponse.getEntity(); + + return EntityUtils.toString(entity, StaticData.TEXT_ENCODER); + } catch (Exception ex) { + log.error(ex.getMessage(), ex); + + return getErrorInfo(uri, ex); + } + } + + /** + * Post璇锋眰-CloseableHttpClient + * + * @param uri Uri鍦板潃 + * @param postData 寰呭彂閫佹暟鎹� + * @return 鍝嶅簲瀛楃涓� + */ + public static String post(String uri, List<NameValuePair> postData) { + try { + CloseableHttpClient httpClient = HttpClients.custom().build(); + + UrlEncodedFormEntity postEntity = new UrlEncodedFormEntity(postData, StaticData.TEXT_ENCODER); + HttpPost httpPost = new HttpPost(uri); + httpPost.setEntity(postEntity); + + CloseableHttpResponse closeResponse = httpClient.execute(httpPost); + + // 鍙栧嚭杩斿洖浣� + HttpEntity entity = closeResponse.getEntity(); + + return EntityUtils.toString(entity, StaticData.TEXT_ENCODER); + } catch (Exception ex) { + log.error(ex.getMessage(), ex); + + return getErrorInfo(uri, ex); + } + } + + /** + * Get璇锋眰-RestTemplate + * + * @param uri Uri鍦板潃 + * @return 鍝嶅簲瀛楃涓� + */ + public static String getForRest(String uri) { + try { + RestTemplate rest = getRestTemplate(); + + return rest.getForObject(uri, String.class); + } catch (Exception ex) { + log.error(ex.getMessage(), ex); + + return getErrorInfo(uri, ex); + } + } + + /** + * Post璇锋眰-RestTemplate + * + * @param uri Uri鍦板潃 + * @param postData 寰呭彂閫佹暟鎹� + * @return 鍝嶅簲瀛楃涓� + */ + public static String postForRest(String uri, List<NameValuePair> postData) { + try { + RestTemplate rest = getRestTemplate(); + UrlEncodedFormEntity entity = new UrlEncodedFormEntity(postData, StaticData.TEXT_ENCODER); + + return rest.postForObject(uri, entity, String.class); + } catch (Exception ex) { + log.error(ex.getMessage(), ex); + + return getErrorInfo(uri, ex); + } + } + + public static String postForRest(String uri, Map<String, Object> map) { + try { + RestTemplate rest = getRestTemplate(); + + return rest.postForObject(uri, map, String.class); + } catch (Exception ex) { + log.error(ex.getMessage(), ex); + + return getErrorInfo(uri, ex); + } + } + + /** + * 鑾峰彇閿欒淇℃伅 + * + * @param uri Uri鍦板潃 + * @param ex 寮傚父 + * @return 閿欒淇℃伅 + */ + public static String getErrorInfo(String uri, Exception ex) { + Map<String, Object> map = new LinkedHashMap<>(); + map.put("result", null); + map.put("message", ex.getMessage()); + map.put("code", 400); + map.put("uri", uri); + //map.put("tag", StaticData.CACHE_PREFIX) + + return map.toString(); + } +} -- Gitblit v1.9.3