1、当不需要使用任何证书访问https网页时,只需配置信任任何证书

  1. HttpClient http = new HttpClient();
  2. String url = "https://payment.cib.com.cn/payment/api/rest";
  3. Protocol myhttps = new Protocol("https", new MySSLProtocolSocketFactory(), 443);
  4. Protocol.registerProtocol("https", myhttps);
  5. PostMethod post = new PostMethod(url);

2、其中信任任何证书的类

  1. import java.io.IOException;
  2. import java.net.InetAddress;
  3. import java.net.InetSocketAddress;
  4. import java.net.Socket;
  5. import java.net.SocketAddress;
  6. import java.net.UnknownHostException;
  7. import java.security.KeyManagementException;
  8. import java.security.NoSuchAlgorithmException;
  9. import java.security.cert.CertificateException;
  10. import java.security.cert.X509Certificate;
  11. import javax.net.SocketFactory;
  12. import javax.net.ssl.SSLContext;
  13. import javax.net.ssl.TrustManager;
  14. import javax.net.ssl.X509TrustManager;
  15. import org.apache.commons.httpclient.ConnectTimeoutException;
  16. import org.apache.commons.httpclient.params.HttpConnectionParams;
  17. import org.apache.commons.httpclient.protocol.ProtocolSocketFactory;
  18. /**
  19. * author by lpp
  20. *
  21. * created at 2010-7-26 上午09:29:33
  22. */
  23. public class MySSLProtocolSocketFactory implements ProtocolSocketFactory {
  24. private SSLContext sslcontext = null;
  25. private SSLContext createSSLContext() {
  26. SSLContext sslcontext=null;
  27. try {
  28. sslcontext = SSLContext.getInstance("SSL");
  29. sslcontext.init(null, new TrustManager[]{new TrustAnyTrustManager()}, new java.security.SecureRandom());
  30. } catch (NoSuchAlgorithmException e) {
  31. e.printStackTrace();
  32. } catch (KeyManagementException e) {
  33. e.printStackTrace();
  34. }
  35. return sslcontext;
  36. }
  37. private SSLContext getSSLContext() {
  38. if (this.sslcontext == null) {
  39. this.sslcontext = createSSLContext();
  40. }
  41. return this.sslcontext;
  42. }
  43. public Socket createSocket(Socket socket, String host, int port, boolean autoClose)
  44. throws IOException, UnknownHostException {
  45. return getSSLContext().getSocketFactory().createSocket(
  46. socket,
  47. host,
  48. port,
  49. autoClose
  50. );
  51. }
  52. public Socket createSocket(String host, int port) throws IOException,
  53. UnknownHostException {
  54. return getSSLContext().getSocketFactory().createSocket(
  55. host,
  56. port
  57. );
  58. }
  59. public Socket createSocket(String host, int port, InetAddress clientHost, int clientPort)
  60. throws IOException, UnknownHostException {
  61. return getSSLContext().getSocketFactory().createSocket(host, port, clientHost, clientPort);
  62. }
  63. public Socket createSocket(String host, int port, InetAddress localAddress,
  64. int localPort, HttpConnectionParams params) throws IOException,
  65. UnknownHostException, ConnectTimeoutException {
  66. if (params == null) {
  67. throw new IllegalArgumentException("Parameters may not be null");
  68. }
  69. int timeout = params.getConnectionTimeout();
  70. SocketFactory socketfactory = getSSLContext().getSocketFactory();
  71. if (timeout == 0) {
  72. return socketfactory.createSocket(host, port, localAddress, localPort);
  73. } else {
  74. Socket socket = socketfactory.createSocket();
  75. SocketAddress localaddr = new InetSocketAddress(localAddress, localPort);
  76. SocketAddress remoteaddr = new InetSocketAddress(host, port);
  77. socket.bind(localaddr);
  78. socket.connect(remoteaddr, timeout);
  79. return socket;
  80. }
  81. }
  82. //自定义私有类
  83. private static class TrustAnyTrustManager implements X509TrustManager {
  84. public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
  85. }
  86. public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
  87. }
  88. public X509Certificate[] getAcceptedIssuers() {
  89. return new X509Certificate[]{};
  90. }
  91. }
  92. }

httpClient无证书访问的更多相关文章

  1. httpsclient 自动获取证书 无证书访问 验证过能直接用

    首先实现写一个 实现接口SecureProtocolSocketFactory的类. /** *ClassName: bcde *date: 2015年2月26日 下午4:51:01 * *@auth ...

  2. httpclient 无信任证书使用https

    1.当不需要使用任何证书访问https网页时,只需配置信任任何证书 HttpClient http = new HttpClient(); String url = "https://pay ...

  3. [原创]LoadRunner 12.02 录制脚本时提示无Internet访问,如何解决?

    在使用LoadRunner 12.02 进行录制脚本时提示无Internet访问,如下图: 翻译中文如下: 可以尝试以下方式解决:点击弹出框中的“Yes”即可. 若还是有问题,尝试以下方式: (1)L ...

  4. java HttpClient 忽略证书的信任的实现 MySSLProtocolSocketFactory

    当不需要任何证书访问https时,java中先实现一个MySSLProtocolSocketFactory类忽略证书的信任 package com.tgb.mq.producer.utils; imp ...

  5. httpclient 认证方式访问http api/resutful api并获取json结果

    最近,因公司线上环境rabbitmq经常发生堆积严重的现象,于是跟运维组讨论,帮助开发个集中监控所有rabbitmq服务器运行情况的应用,需要通过java访问rabbitmq暴露的http api并接 ...

  6. C#完全无客户端访问Oracle

    网上太多的C#无客户端访问oracle案例,经我测试无一成功,特将我在oracle官网上和自己琢磨总结,终于成功,废话不多说,直接上项目. 一,准备条件 (由于我这里是用的控制台程序来测试的,所以将上 ...

  7. iOS工具——Xcode9无证书真机调试

    入坑iOS开发这么久,一直都是在模拟器上运行,公司的项目也都有公司的开发者账号进行真机调试.但是很多时候在网上download一些demo想在真机上运行看一下效果的时候都没法成行,今天抽空好好研究和学 ...

  8. Manjaro搭建无密访问samba服务器

    为了方便Linux在Windows平台下开发,搭建Manjaro无密访问samba服务器 后面加了Windows下搭建samba方法 安装smb服务器 我用的是Manjaro gnome 18,需要安 ...

  9. 360开启wifi无网络访问处理办法

    一.背景说明 台式机默认没有无线网卡的,想开个wifi,在电脑上插上了个usb无线网卡然后开启“360免费WiFi”.但显示“无网络访问”,连上之后确实也不能访问外部网站. 二.处理办法 依次打开“控 ...

随机推荐

  1. C++ Sets

    集合(Set)是一种包含已排序对象的关联容器 begin() 返回指向第一个元素的迭代器 clear() 清除所有元素 count() 返回某个值元素的个数 empty() 如果集合为空,返回true ...

  2. 关于C++string的长度陷阱

    std::string s = ...; ..... assert(s.length() == strlen(s.c_str())); 一般认为这段代码是不会断言失败的,但是实际上这段代码可能是会断言 ...

  3. JavaScript 中undefined,null,NaN的区别

    1.类型分析: js中的数据类型有undefined,boolean,number,string,object等5种,前4种为原始类型,第5种为引用类型.var a1;var a2 = true;va ...

  4. 《Linux系统静态路由和火墙路由》

    本篇主要写的是关于静态路由表的添加,和如何让你不能上网的主机通过火墙路由表实现上网的功能. 静态路由表: 要是你的主机是2块网卡,并且做了网卡的绑定,依照我下面的方法是成功不了的,你可以去编辑: # ...

  5. Nginx之负载均衡

    转自:http://www.360doc.com/content/13/1114/12/7694408_329125489.shtml 注,大家可以看到,由于我们网站是发展初期,nginx只代理了后端 ...

  6. net 中捕获摄像头视频的方式及对比(How to Capture Camera Video via .Net) (转)

    作者:王先荣前言    随着Windows操作系统的不断演变,用于捕获视频的API接口也在进化,微软提供了VFW.DirectShow和MediaFoundation这 三代接口.其中VFW早已被Di ...

  7. [大牛翻译系列]Hadoop(18)MapReduce 文件处理:基于压缩的高效存储(一)

    5.2 基于压缩的高效存储 (仅包括技术25,和技术26) 数据压缩可以减小数据的大小,节约空间,提高数据传输的效率.在处理文件中,压缩很重要.在处理Hadoop的文件时,更是如此.为了让Hadoop ...

  8. IDEA笔记

    快捷键: 查找类:ctrl + shif + R (eclipse)查找文件:double shift查找文件中的变量名和方法:ctrl + H (eclipse)system.out:输入 sout ...

  9. 11g RAC R2 之Linux DNS 配置

    在动手配置前,最好先了解下DNS的理论,以免犯不必要的错误.这都是被坑后的觉悟 -_-!!! Oracle 11g RAC 集群中引入了SCAN(SingleClientAccessName)的概念, ...

  10. Linux nmon 监控工具使用

    Linux 系统下监控指标及指标查看 一.工具介绍     Linux 系统下资源监控使用nmon 工具.它可以帮助在一个屏幕上显示所有重要的性能优化信息,并动态地对其进行更新且并不会消耗大量的CPU ...