zoukankan      html  css  js  c++  java
  • 图片域名升级为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);

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

  • 相关阅读:
    IndexOf、IndexOfAny 、Remove
    静态类、静态方法的使用
    面向对象 字段、方法、属性
    break、continue、return
    冒泡排序
    方法练习
    Oracle-查看oracle是否有表被锁
    教程-键盘扫描码
    网卡远程唤醒-远程开机再配合远程控制
    远程控制篇:在DELPHI程序中拨号上网
  • 原文地址:https://www.cnblogs.com/zxci/p/6423454.html
Copyright © 2011-2022 走看看