https服务器获取文件的方法

最近做了许多获取文件的coding。现总结如下:

  在与银行进行交互的过程中,经常需要互相传送文件。文件的生成会根据业务逻辑在一天内的某个时刻,并且文件每天一更新,所以我们在文件传输的过程中首要的任务是保证在规定的时间内将文件传输给相关人员。

  文件传输逻辑有两种方式,定时传输和手动传输。

  定时传输,可以采用spring的定时组件,通过配置xml文件的形式,定时执行某个Action,实现每日定时传输功能。这种方式能够通过日志查看到每日文件是否发送成功,如果发送不成功原因是什么,以便程序员定期维护。

 手动传输,采用文件名的方式获取服务器上相应文件,然后将其通过邮件或输入流的方式放入到另一台服务器上。手动传输方式需要一个前台页面,接收需要接收文件名称或文件名称的一部分,然后拼接成一个文件名。

由于测试环境和生产环境存在差异,常常会遇到测试环境为http协议可以获取到文件,而到了生产环境就为https,连接超时(time out)。这和我们访问一个https网站浏览器要求我们确认是否访问的原理一样。我们需要在连接之前,将其设置为“可信”。代码如下:

 private static class TrustAnyTrustManager implements X509TrustManager {

   

       public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {

       }

   

       public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {

       }     


@Override

public void checkClientTrusted(

java.security.cert.X509Certificate[] arg0, String arg1)

throws CertificateException {

// TODO Auto-generated method stub

}


@Override

public void checkServerTrusted(

java.security.cert.X509Certificate[] arg0, String arg1)

throws CertificateException {

// TODO Auto-generated method stub

}


@Override

public java.security.cert.X509Certificate[] getAcceptedIssuers() {

// TODO Auto-generated method stub

return null;

}

   }

   

   private static class TrustAnyHostnameVerifier implements HostnameVerifier {

       public boolean verify(String hostname, SSLSession session) {

           return true;

       }

   }

关键的类是TrustAnyHostnameVerifier ,有了它方法verify的return true,我们可以轻松的绕过https不可信的认证。


转载于:https://my.oschina.net/zjItLife/blog/301267

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值