zero 1 hónapja
szülő
commit
a78fda766d

+ 51 - 5
src/main/java/com/cslg/ppa/common/utils/HttpUtils.java

@@ -7,9 +7,11 @@ import okhttp3.*;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.http.impl.client.CloseableHttpClient;
 import org.apache.http.impl.client.HttpClients;
+import org.springframework.util.CollectionUtils;
 
 import java.io.IOException;
 import java.io.InputStream;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -24,17 +26,18 @@ import java.util.regex.Pattern;
 public class HttpUtils {
 
 
-    /**okhttp 实例**/
-    private static OkHttpClient client = new OkHttpClient();;
-//    private static CloseableHttpClient client = HttpClients.custom()
-//                .build();
+    /**
+     * okhttp 实例
+     **/
+    private static OkHttpClient client = MyOkHttpClient.getClient();
 
     /**解析键值对正则**/
     public static final Pattern PAT_KEY_VALUE = Pattern.compile("[\\w]*=[\\w,/]*");
 
 
     public static String doGet(String url, Map<String, String> params,String cookie) {
-        Request.Builder reqBuild = new Request.Builder();
+        Request.Builder reqBuild = new Request.Builder()
+                .addHeader("Cookie", cookie);
         HttpUrl.Builder urlBuilder = HttpUrl.parse(url)
                 .newBuilder();
         if (params != null) {
@@ -133,15 +136,58 @@ public class HttpUtils {
         Response response = null;
         try {
             response = client.newCall(request).execute();
+            List<String> list = new ArrayList<>();
+            List<String> cookies = response.headers("set-cookie");
+            System.out.println(cookies);
+            for (String s : cookies) {
+                String[] split = s.split(";");
+                list.add(split[0]);
+            }
             if (!response.isSuccessful()) {
                 throw new RuntimeException("请求不成功" + response.toString());
             }
+            String string = response.body().string();
             return response.body().string();
         } catch (IOException e) {
             throw new RuntimeException(e.getMessage(), e);
         }
     }
 
+    public static Map<String, String> getCookies(String url, Map<String, String> params, String cookie) {
+        Map<String, String> map = new HashMap<>();
+        FormBody.Builder formBuilder = new FormBody.Builder();
+        if (params != null) {
+            params.forEach(formBuilder::addEncoded);
+        }
+
+        Request request = new Request.Builder()
+                .url(url)
+                .post(formBuilder.build())
+                .addHeader("Cookie", cookie)
+                .build();
+
+        Response response = null;
+        try {
+            response = client.newCall(request).execute();
+            List<String> list = new ArrayList<>();
+            List<String> cookies = response.headers("set-cookie");
+            System.out.println(cookies);
+            for (String s : cookies) {
+                String[] split = s.split(";");
+                list.add(split[0]);
+            }
+            map.put("cookies", StringUtils.join(list, ";"));
+            if (!response.isSuccessful()) {
+                throw new RuntimeException("请求不成功" + response.toString());
+            }
+            String str = response.body().string();
+            map.put("boby", str);
+            return map;
+        } catch (IOException e) {
+            throw new RuntimeException(e.getMessage(), e);
+        }
+    }
+
     /**
      * post
      * @return

+ 11 - 0
src/main/java/com/cslg/ppa/entity/commom/WxResultBody.java

@@ -11,6 +11,8 @@ public class WxResultBody<L> {
 
     private String redirect_url;
 
+    private String cookies;
+
     private Integer ret;
 
     private Integer status;
@@ -95,12 +97,21 @@ public class WxResultBody<L> {
         this.app_msg_list = app_msg_list;
     }
 
+    public String getCookies() {
+        return cookies;
+    }
+
+    public void setCookies(String cookies) {
+        this.cookies = cookies;
+    }
+
     @Override
     public String toString() {
         return "WxResultBody{" +
                 "acct_size=" + acct_size +
                 ", err_msg='" + err_msg + '\'' +
                 ", redirect_url='" + redirect_url + '\'' +
+                ", cookies='" + cookies + '\'' +
                 ", ret=" + ret +
                 ", status=" + status +
                 ", user_category=" + user_category +

+ 21 - 0
src/main/java/com/cslg/ppa/service/commom/WeiXinApi.java

@@ -217,6 +217,27 @@ public class WeiXinApi {
         return wxResultBody;
     }
 
+    public static WxResultBody bizlogin1(String cookie) {
+        Map<String, String> params = new HashMap<>(10);
+        params.put("userlang", "zh_CN");
+        params.put("redirect_url", "");
+        params.put("cookie_forbidden", "0");
+        params.put("cookie_cleaned", "0");
+        params.put("plugin_used", "0");
+        params.put("login_type", "3");
+        params.put("token", "");
+        params.put("lang", "zh_CN");
+        params.put("f", "json");
+        params.put("ajax", "1");
+
+        Map<String, String> map = HttpUtils.getCookies(URL_MAP.get("bizlogin"), params, cookie);
+
+        WxResultBody wxResultBody = parseWxResultBody(map.get("boby"));
+        wxResultBody.setCookies(map.get("cookies"));
+
+        return wxResultBody;
+    }
+
 
     /**
      * 检查微信登录状态

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 7 - 6
src/test/java/com/cslg/ppa/PpaApplicationTests.java