Loading

解决采集文章防盗链图片不显示问题(java)

在互联网上采集数据做应用时,我们经常会遇到目标网站图片有防盗链,导致采集文章中的图片在应用中无法预览,通常解决这个问题有2个办法:

1、采集的时候将图片下载到自己的服务器上,然后将图片路径替换为自己的图片路径,缺点是存储资源太大(费用太高),采集慢;

2、不下载图片,在显示时做处理,由服务端来解决防盗链,我就是用的这种方式。

    @GetMapping("/xb")
    public void img(String url, HttpServletResponse response) {
        try {
            URL urls = new URL(url);
            HttpURLConnection conn = (HttpURLConnection) urls.openConnection();
            conn.setRequestMethod("GET");
            conn.setConnectTimeout(10 * 1000);
            conn.setReadTimeout(10 * 1000);
            InputStream inStream = conn.getInputStream();
            ByteArrayOutputStream outStream = new ByteArrayOutputStream();
            byte[] buffer = new byte[2048];
            int len = 0;
            while ((len = inStream.read(buffer)) != -1) {
                outStream.write(buffer, 0, len);
            }
            inStream.close();
            byte data[] = outStream.toByteArray();
            response.setContentType("image/jpg");
            OutputStream os = response.getOutputStream();
            os.write(data);
            os.flush();
            os.close();
        } catch (Exception e) {
            e.printStackTrace();
        }


    }

 使用方法:url就是被防盗链的可访问地址,经过服务器转发返回图片流。

例如:https://www.ewbang.com/community/xb/?url=http://www.xiaobaixitong.com/d/file/jiaocheng/2022-11-16/d295a803f6b8e765b23864f8a460de01.png

 

posted @ 2023-02-24 11:00  Roc-xb  阅读(47)  评论(0编辑  收藏  举报

易微帮源码


易微帮官网