• 图片域名升级为https之后无法用HttpURLConnection获取输入流(InputStream)的解决方法


    最近公司里的域名都升级https包括图片域名,之后就陆续出现了一些问题,其中包括无法在java代码中用HttpURLConnection访问图片路径后获取输入流:InputStream(即使获取到了,InputStream里面的值都是无效的)。

    百度查找后换了几种方法试了都不行,最后我就在想是不是跟https访问有关,之后我就把图片域名设置成即可以用http访问也可以用https访问,然后再用HttpURLConnection来访问图片路径,访问时图片路径用的是http,运行代码之后果然可以获取到图片的输入流了,然后我又试了下把http改成https,再运行代码还是获取不了。

    下面就是怎么设置即可以用https访问也可以用http访问:

    1、首先在 nginx 配置文件中把 ssl on;  这一行注释掉或者删除了

    # ssl on; 表示开启https,开启了之后只允许https访问,不允许http访问

    2、重启 nginx 即可使用http和https访问了

    具体用 HttpURLConnection 访问的代码如下:

    URL url = new URL("http://img.alicdn.com/simba/img/TB1l_ulPpXXXXc8XVXXSutbFXXX.jpg");
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                
    connection.setRequestMethod("GET");
    connection.setConnectTimeout(15000);
    connection.setReadTimeout(15000);
    connection.connect(); //访问图片
    DataInputStream dis = new DataInputStream(connection.getInputStream());
    Image firstImg = ImageIO.read(dis);//将图片                                                                    //获取图片的长和高
    Integer firstImgWidth = firstImg.getWidth(null);
    Integer firstImgHeight = firstImg.getHeight(null);

    当然或许还有其它更好的解决方案,我这只是比较简单的

  • 相关阅读:
    Code Review(代码的自我评审)
    在ANDROID STUDIO环境下使用Espresso 测试框架进行UI测试
    第一个迭代任务——倒计时
    Scrum的3种角色划分——倒计时
    需求分析(WBS图)
    countdown(计时器)
    Countdown(计时器)
    团队模式选择
    软件开发流程
    软件团队的模式
  • 原文地址:https://www.cnblogs.com/zxci/p/6423454.html
Copyright © 2020-2023  润新知