解决了! 是因为IO流读写不一致,idea自带UTF-8读写,tomcat没有,所以要在 sb.append(new String(b, 0, len)); 加一个编码格式,变成: sb.append(new String(b, 0, len,"utf-8"));
为什么本地获取公众号素材列表没问题,可放到服务器上读取就变成了字符了? 还有标题中有方块问号本地测试时返回值: [图片] 云服务器上的返回: [图片] 同一套代码 云服务器上是war //获取公众号文章列表 public String getContentList(String token,String offset) throws IOException { String path = " https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token=" + token; URL url = new URL(path); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("POST"); connection.setDoOutput(true);//允许写出 connection.setRequestProperty("content-type", "application/json;charset=utf-8"); connection.connect(); // post发送的参数 Map map = new HashMap<>(); map.put("type", "news"); // news表示图文类型的素材,具体看API文档 map.put("offset", Integer.parseInt(offset)); map.put("count", 5); // 将map转换成json字符串 String paramBody = JSON.toJSONString(map); // 这里用了Alibaba的fastjson OutputStream out = connection.getOutputStream(); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(out)); bw.write(paramBody); // 向流中写入参数字符串 bw.flush(); InputStream in = connection.getInputStream(); byte[] b = new byte[100]; int len = -1; StringBuffer sb = new StringBuffer(); while ((len = in.read(b)) != -1) { sb.append(new String(b, 0, len)); } System.out.println(sb.toString()); in.close(); return sb.toString(); }
2020-05-14各有各的好处嘛,我觉得globlData方便点,缓存还要删除
有缓存为什么还要用globalData呢?开发时一直有个疑问,退出小程序,缓存中的内容还在,globalData的内容没了。 那肯定将重要的用户信息放入缓存中比较好。 那为什么还要用 globalData 呢?有什么场景非要用到 globalData 呢?
2020-05-09你的小程序填了appid吗 还是你是个人的小程序appid
获取用户手机号提示appid无权限?wxd9ff337462da798d [图片]
2020-05-09我也常会出现,重新保存一下又可以了。
开发者工具调试看不到styles样式wxml 看不到styles样式 [图片]
2020-05-09