From df1de6a8ca9bf6af14d858fb51d077c00dd2dd48 Mon Sep 17 00:00:00 2001
From: huanghongfa <huanghongfa123456>
Date: 星期五, 23 七月 2021 13:08:41 +0800
Subject: [PATCH] 修改bug

---
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxOfficialApi.java |   55 ++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 46 insertions(+), 9 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxOfficialApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxOfficialApi.java
index 49d6628..75549a9 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxOfficialApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxOfficialApi.java
@@ -3,6 +3,7 @@
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.utlis.HttpClientUtil;
 import com.panzhihua.common.utlis.StringUtils;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
@@ -13,10 +14,8 @@
 import java.net.MalformedURLException;
 import java.net.ProtocolException;
 import java.net.URL;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.nio.charset.Charset;
+import java.util.*;
 
 @Slf4j
 @RestController
@@ -77,7 +76,7 @@
         String paramBody = JSON.toJSONString(map); // 这里用了Alibaba的fastjson
 
         OutputStream out = connection.getOutputStream();
-        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(out));
+        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(out,"utf-8"));
         bw.write(paramBody); // 向流中写入参数字符串
         bw.flush();
 
@@ -86,15 +85,49 @@
         int len = -1;
         StringBuffer sb = new StringBuffer();
         while((len = in.read(b)) != -1) {
-            sb.append(new String(b,0,len,"utf-8"));
+            sb.append(new String(b,0,len));
         }
 
         in.close();
         return sb.toString();
     }
 
+    /**
+     * 微信公众号请求头设置
+     */
+    public static Map<String, String> getWxHeaderMap() {
+        Map<String, String> map = new HashMap<>(new LinkedHashMap());
+        map.put("Accept", "text/html, application/xhtml+xml, image/jxr, */*");
+        map.put("Accept-Encoding", "gzip, deflate");
+        map.put("Accept-Language", "zh-Hans-CN, zh-Hans; q=0.8, en-US; q=0.5, en; q=0.3");
+        map.put("Host", "mp.weixin.qq.com");
+        map.put("If-Modified-Since", "Sat, 04 Jan 2020 12:23:43 GMT");
+        map.put("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko");
+        return map;
+    }
+
+    /**
+     * 根据文章链接抓取文章内容
+     *
+     * @param url 文章链接
+     * @return 文章内容
+     */
+    public static R getActicle(String url) {
+        // post发送的参数
+        Map<String, Object> map = new HashMap<>();
+        map.put("type", "news"); // news表示图文类型的素材,具体看API文档
+        map.put("offset", 0);
+        map.put("count", 5);
+        // 将map转换成json字符串
+        String paramBody = JSON.toJSONString(map);
+        // 请求与响应
+        String resp = HttpClientUtil.get(url, getWxHeaderMap(),paramBody);
+        log.info(resp);
+        return R.ok(resp);
+    }
+
     @ApiOperation(value = "拉取公众号列表")
-    @GetMapping(value = "/list/noToken")
+    @GetMapping(value = "/list/noToken",produces="application/json;charset=utf-8")
     public R pageDiscuss() throws Exception{
         WxOfficialApi officialApi = new WxOfficialApi();
 
@@ -114,14 +147,18 @@
         if(!tokenList.isEmpty()){
             tokenList.forEach(token -> {
                 try {
-                    String result = officialApi.getContentList(token);
+                    String url = "https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token=" + token;
+                    R result = getActicle(url);
+//                  String result = officialApi.getContentList(token);
                     log.info("通过token获取文章列表成功,返回结果:" + result);
-                    resultList.add(JSON.parseObject(result));
+//                    resultList.add(JSON.parseObject(result));
                 }catch (Exception e){
                     log.error("通过token获取文章列表失败,错误原因:" + e.getMessage());
                 }
             });
         }
+
+
         return R.ok(resultList);
     }
 

--
Gitblit v1.7.1