From 7beb5d636d220904dbfe58f3560477648cf79d81 Mon Sep 17 00:00:00 2001 From: DELL <1525436766@qq.com> Date: 星期六, 31 八月 2024 13:54:56 +0800 Subject: [PATCH] 新增接口调用方式 --- src/main/java/com/fgkj/http/CloseableHttpClientUtil.java | 160 +++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/fgkj/model/Model.java | 10 +++ 2 files changed, 169 insertions(+), 1 deletions(-) diff --git a/src/main/java/com/fgkj/http/CloseableHttpClientUtil.java b/src/main/java/com/fgkj/http/CloseableHttpClientUtil.java new file mode 100644 index 0000000..70ea50c --- /dev/null +++ b/src/main/java/com/fgkj/http/CloseableHttpClientUtil.java @@ -0,0 +1,160 @@ +package com.fgkj.http; + + +import com.alibaba.fastjson2.JSONObject; +import com.fgkj.model.Model; +import org.apache.http.HttpResponse; +import org.apache.http.HttpStatus; +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.HttpClientBuilder; +import org.apache.http.util.EntityUtils; + +import javax.xml.transform.Result; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.util.List; + +/** + * @author riemann + */ +public class CloseableHttpClientUtil { + + private static String tokenString = ""; + private static String AUTH_TOKEN_EXPIRED = "AUTH_TOKEN_EXPIRED"; + private static CloseableHttpClient httpClient = null; + + /** + * 浠et鏂瑰紡璋冪敤绗笁鏂规帴鍙� + * @param url + * @param token + * @return + */ + public static String doGet(String url, String token) { + //鍒涘缓HttpClient瀵硅薄 + CloseableHttpClient httpClient = HttpClientBuilder.create().build(); + HttpGet httpGet = new HttpGet(url); + if (null != tokenString && !tokenString.equals("")) { + tokenString = getToken(); + } + //api_gateway_auth_token鑷畾涔塰eader澶达紝鐢ㄤ簬token楠岃瘉浣跨敤 + httpGet.addHeader("api_gateway_auth_token",tokenString); + httpGet.addHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36"); + try { + HttpResponse response = httpClient.execute(httpGet); + if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { + //杩斿洖json鏍煎紡 + String res = EntityUtils.toString(response.getEntity()); + return res; + } + } catch (IOException e) { + e.printStackTrace(); + } + return null; + } + + /** + * 浠ost鏂瑰紡璋冪敤绗笁鏂规帴鍙� + * @param url + * @param json + * @return + */ + public static String doPost(String url, JSONObject json) { + if (null == httpClient) { + httpClient = HttpClientBuilder.create().build(); + } + HttpPost httpPost = new HttpPost(url); + //鏌愪簺闇�瑕佺櫥褰曟墠鑳借闂殑鎺ュ彛闇�瑕佽幏鍙栦箣鍓嶇殑token,闃叉閲嶅鐧婚檰 +// if (null != tokenString && tokenString.equals("")) { +// tokenString = getToken(); +// } + //api_gateway_auth_token鑷畾涔塰eader澶达紝鐢ㄤ簬token楠岃瘉浣跨敤 + httpPost.addHeader("api_gateway_auth_token", tokenString); + httpPost.addHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36"); + try { + StringEntity se = new StringEntity(json.toString()); + se.setContentEncoding("UTF-8"); + //鍙戦�乯son鏁版嵁闇�瑕佽缃甤ontentType + se.setContentType("application/x-www-form-urlencoded"); + //璁剧疆璇锋眰鍙傛暟 + httpPost.setEntity(se); + HttpResponse response = httpClient.execute(httpPost); + if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { + //杩斿洖json鏍煎紡 + String res = EntityUtils.toString(response.getEntity()); + return res; + } + } catch (IOException e) { + e.printStackTrace(); + } finally { + if (httpClient != null){ + try { + httpClient.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + return null; + } + + /** + * 鑾峰彇绗笁鏂规帴鍙g殑token + */ + public static String getToken() { + String token = ""; + JSONObject object = new JSONObject(); + object.put("appid", "appid"); + object.put("secretkey", "secretkey"); + if (null == httpClient) { + httpClient = HttpClientBuilder.create().build(); + } + HttpPost httpPost = new HttpPost("http://192.168.10.142:8080"); + httpPost.addHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36"); + try { + StringEntity se = new StringEntity(object.toString()); + se.setContentEncoding("UTF-8"); + //鍙戦�乯son鏁版嵁闇�瑕佽缃甤ontentType + se.setContentType("application/x-www-form-urlencoded"); + //璁剧疆璇锋眰鍙傛暟 + httpPost.setEntity(se); + HttpResponse response = httpClient.execute(httpPost); + //杩欓噷鍙互鎶婅繑鍥炵殑缁撴灉鎸夌収鑷畾涔夌殑杩斿洖鏁版嵁缁撴灉锛屾妸string杞崲鎴愯嚜瀹氫箟绫� + //ResultTokenBO result = JSONObject.parseObject(response, ResultTokenBO.class); + //鎶妑esponse杞负jsonObject + JSONObject result = (JSONObject) JSONObject.parseObject(String.valueOf(response)); + if (result.containsKey("token")) { + token = result.getString("token"); + } + } catch (IOException e) { + e.printStackTrace(); + } + return token; + } + + /** + * 娴嬭瘯 + */ + public static void test(String telephone) { + + JSONObject object = new JSONObject(); + object.put("telephone", telephone); + + //棣栧厛鑾峰彇token + //tokenString = getToken(); + String response = doPost("http://192.168.10.142:8080/webService/getRealTimeData", object); + //濡傛灉杩斿洖鐨勭粨鏋滄槸list褰㈠紡鐨勶紝闇�瑕佷娇鐢↗SONObject.parseArray杞崲 + //List<Result> list = JSONObject.parseArray(response, Result.class); + Model model = JSONObject.parseObject(response, Model.class); + + System.out.println(response); + System.out.println(model); + } + + public static void main(String[] args) { + test("12345678910"); + } +} \ No newline at end of file diff --git a/src/main/java/com/fgkj/model/Model.java b/src/main/java/com/fgkj/model/Model.java index f2bc631..ab1d6d9 100644 --- a/src/main/java/com/fgkj/model/Model.java +++ b/src/main/java/com/fgkj/model/Model.java @@ -20,5 +20,13 @@ */ private String reason; - + @Override + public String toString() { + return "Model{" + + "code=" + code + + ", msg='" + msg + '\'' + + ", data=" + data + + ", reason='" + reason + '\'' + + '}'; + } } -- Gitblit v1.9.1