微信图片不可显示java解决方法

先看知乎:https://www.zhihu.com/question/35044484

场景: 微信上传了图片素材,返回了图片url,然后不能在img标签中正常显示.

原因是微信做了图片防盗连接.

解决方法:

原理:使用你的服务端脚本,远程抓取图片,然后输出image/* 格式,就可以了。

java方法:

 1     @RequestMapping("/img")
 2     @ResponseBody
 3     public void aa1(@NotNull String url, HttpServletRequest request, HttpServletResponse response) throws IOException {
 4         
 5         if (!StringUtil.isEmpty(url)) {
 6             int index=url.indexOf("http");
 7             if(index==-1){
 8                 url="http://"+url;
 9             }
10             URL getUrl = new URL(url);
11             URLConnection connection = getUrl.openConnection();
12             connection.setRequestProperty("Referer", "");
13             connection.setRequestProperty("accept", "*/*");
14             connection.setRequestProperty("connection", "Keep-Alive");
15             connection.setRequestProperty("user-agent",
16                     "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36");
17             connection.setDoOutput(true);
18             InputStream fis = connection.getInputStream();
19             OutputStream os = response.getOutputStream();
20             int count = 0;
21             byte[] buffer = new byte[1024 * 1024];
22             while ((count = fis.read(buffer)) != -1) {
23                 os.write(buffer, 0, count);
24             }
25             os.flush();
26             fis.close();
27             response.setContentType("image/*");
28         }
29     }

url是微信的图片连接.

原文地址:https://www.cnblogs.com/huzi007/p/5953496.html