目标:java controller访问https://xxxx/xxxx.html,以流的形式直接返回该页面

1.添加信任管理器类

public class MyX509TrustManager implements X509TrustManager {// 检查客户端证书public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {}// 检查服务器端证书public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {}// 返回受信任的X509证书数组public X509Certificate[] getAcceptedIssuers() {return null;}public class TrustAnyHostnameVerifier implements HostnameVerifier {@Overridepublic boolean verify(String s, SSLSession sslSession) {// 直接返回true:默认所有https请求都是安全的return true;}}
}

2.controller

@Overridepublic String getRobotPage(HttpServletResponse response, String url){try{response.setContentType("multipart/form-data");response.setCharacterEncoding("UTF-8");response.setContentType("text/html");// 2.设置文件头:最后一个参数是设置下载文件名ServletOutputStream out;//访问https下的文件// 创建SSLContextSSLContext sslContext = SSLContext.getInstance("SSL");TrustManager[] tm = { new MyX509TrustManager() };// 初始化sslContext.init(null, tm, new java.security.SecureRandom());;// 获取SSLSocketFactory对象SSLSocketFactory ssf = sslContext.getSocketFactory();// url对象URL url = new URL(url);// 打开连接HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();/*** 这一步的原因: 当访问HTTPS的网址。您可能已经安装了服务器证书到您的JRE的keystore* 但是服务器的名称与证书实际域名不相等。这通常发生在你使用的是非标准网上签发的证书。** 解决方法:让JRE相信所有的证书和对系统的域名和证书域名。** 如果少了这一步会报错:java.io.IOException: HTTPS hostname wrong: should be localhost*/conn.setHostnameVerifier(new MyX509TrustManager().new TrustAnyHostnameVerifier());// 设置一些参数conn.setDoOutput(true);conn.setDoInput(true);conn.setUseCaches(false);conn.setRequestMethod("GET");// 设置当前实例使用的SSLSoctetFactoryconn.setSSLSocketFactory(ssf);conn.connect();InputStream inputStream = conn.getInputStream();// 3.通过response获取ServletOutputStream对象(out)out = response.getOutputStream();int b = 0;byte[] buffer = new byte[1024];while ((b = inputStream.read(buffer)) != -1) {// 4.写到输出流(out)中out.write(buffer, 0, b);}inputStream.close();out.flush();out.close();} catch (FileNotFoundException e) {return "<p style='color:red;text-align:center'>默认界面未找到</p>";} catch (IOException e) {System.out.println("=========="+e.getMessage());return "<p style='color:red;text-align:center'>界面加载失败</p>";} catch (NoSuchAlgorithmException e) {e.printStackTrace();} catch (KeyManagementException e) {e.printStackTrace();}return "";}

运行效果:当调用这个接口时直接返回页面

java springCloud控制层访问https下的html文件并以流显示到页面相关推荐

  1. Java在不解压的前提下处理ZIP文件

    Java在不解压的前提下处理ZIP文件 在不解压zip的情况下,通过Zip4J工具包,直接以InputStream的形式,读取里面文件 JDK已经内置了ZipInputStream 能够完成该工作,但 ...

  2. Java 项目控制层测试

    登录 代码如下 package net.lh.shop.servlet;/*** 功能:登录处理类* 作者:刘浩* 日期:2019年12月9日*/import java.io.IOException; ...

  3. 不拦截指定路径_控制层访问拦截

    在控制层进行访问拦截也是我们在项目中常会遇到的需求,例如:项目中要求系统登录操作有时间限制--12306购票时间的限制等. 对于这类需求我们一般有几种选择: 过滤器Filter AOP SpringM ...

  4. 怎么通过controller层退出登录_控制层访问拦截

    在控制层进行访问拦截也是我们在项目中常会遇到的需求,例如:项目中要求系统登录操作有时间限制--12306购票时间的限制等. 对于这类需求我们一般有几种选择: 过滤器Filter AOP SpringM ...

  5. java http 下载网页代码_Java下http下载文件客户端和上传文件客户端实例代码

    Java下http下载文件客户端和上传文件客户端实例代码 发布于 2021-1-14| 复制链接 摘记: 一.下载客户端代码 ```java package javadownload; import ...

  6. java web inf_Java Web中如何访问WEB-INF下的XML文件

    一.Spring配置文件在类路径下面 在Spring的java应用程序中,一般我们的Spring的配置文件都是放在放在类路径下面(也即编译后会进入到classes目录下). 以下是我的项目,因为是用m ...

  7. Java案例:生成指定目录下某种类型文件的列表

    文章目录 一.提出任务 二.解决问题 1.创建Java项目 - GetTypeFiles 2.创建net.hw.file包,在里面创建getFiles类 3.启动程序,查看效果 一.提出任务 编写一个 ...

  8. cmd命令下,使用java命令,运行指定目录下的*.class文件。

    目标: 使用jdk1.8bin目录下的java.jdk1.9目录下的java命令, 运行D:\111\222\下的HelloWorld.class文件,(HelloWorld在包com.xxx中) 使 ...

  9. SpringBoot----项目中无法访问webapp下面的WEB-INF文件夹中的jsp页面解决方法

    踩坑总结: 1.先贴出目录结构 2.访问WEB-INF文件夹中的jsp页面一直提示:JSP file [WEB-INF/views/hello.jsp] not found,如下图: 3.页面没法找到 ...

最新文章

  1. Netflix网关zuul(1.x和2.x)全解析
  2. OpenCV3.0或OpenCV3.1的SVM操作
  3. Leetcode: Median of Two Sorted Arrays
  4. Simulink步长
  5. 基于amoeba实现mysql数据库的读写分离/负载均衡
  6. BZOJ2693:JZPTAP——题解
  7. java如果目录不存在则创建目录_java – 创建一个目录,如果它不存在,然后再创建该目录中的文件...
  8. 【算法】排序_归并排序
  9. 三星note9刷Android9,【极光ROM】-【三星NOTE9 N960X-9810】-【V21.0 Android-Q-THB】
  10. 基于微信的买菜小程序 毕业设计毕业论文 开题报告和效果图(基于微信小程序毕业设计题目选题课题)
  11. redis的hset hget mset mget是什么
  12. vue中实现视频直播(萤石云)/实时视频:
  13. 合计函数(统计函数)
  14. Typora+PciGo-Core+SMMS自动上传图片
  15. 使用v-charts报错
  16. exchange邮箱一直提示密码错误,密码是正确的,求大佬解答
  17. HTTP错误代码 404 503 500
  18. LaTeX排版系统及与word的区别
  19. 漂亮的checkbox样式 (多选框)
  20. 关系数据库——数据库恢复

热门文章

  1. Python学习笔记—第二章—IPython
  2. Python源码剖析-SmallPathon
  3. [译] 前端攻略-从路人甲到英雄无敌
  4. 使用虚拟磁盘文件创建虚拟机
  5. reactjs受控组件和非受控组件
  6. 数字廉江地理空间框架 三维景观数据专业技术设计书
  7. 小米java内部面试题_小米社招面试经验java,面试题整理(一面二面)
  8. ClickHouse安装使用Centos7环境
  9. 领域驱动设计(3)模型驱动设计
  10. 高数精髓——极限存在、连续、可导、可微和可积之间的联系