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