`
googlelee
  • 浏览: 116047 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

创建可访问https的client

 
阅读更多

import java.io.IOException;

import java.net.Socket;

import java.net.UnknownHostException;

import java.security.KeyManagementException;

import java.security.KeyStore;

import java.security.KeyStoreException;

import java.security.NoSuchAlgorithmException;

import java.security.UnrecoverableKeyException;

 

import javax.net.ssl.SSLContext;

import javax.net.ssl.TrustManager;

import javax.net.ssl.X509TrustManager;

 

import org.apache.http.conn.ssl.SSLSocketFactory;

 

public class SSLSocketFactoryEx extends SSLSocketFactory {

 

        SSLContext sslContext = SSLContext.getInstance("TLS");

 

        public SSLSocketFactoryEx(KeyStore truststore) 

                        throws NoSuchAlgorithmException, KeyManagementException,

                        KeyStoreException, UnrecoverableKeyException {

                super(truststore);

 

                TrustManager tm = new X509TrustManager() {

                        public java.security.cert.X509Certificate[] getAcceptedIssuers() {return null;}  

 

            @Override  

            public void checkClientTrusted(

                            java.security.cert.X509Certificate[] chain, String authType)

                                            throws java.security.cert.CertificateException {}  

 

            @Override  

            public void checkServerTrusted(

                            java.security.cert.X509Certificate[] chain, String authType)

                                            throws java.security.cert.CertificateException {}

        };  

        sslContext.init(null, new TrustManager[] { tm }, null);  

    }  

 

    @Override  

    public Socket createSocket(Socket socket, String host, int port,boolean autoClose) throws IOException, UnknownHostException {  

            return sslContext.getSocketFactory().createSocket(socket, host, port,autoClose);  

    }  

 

    @Override  

    public Socket createSocket() throws IOException {  

        return sslContext.getSocketFactory().createSocket();  

    }  

}

 

 

public static DefaultHttpClient getNewHttpClient() {  

        try {  

            KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());  

            trustStore.load(null, null);  

 

            SSLSocketFactory sf = new SSLSocketFactoryEx(trustStore);  

            sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);  

 

            HttpParams params = new BasicHttpParams();  

            HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);  

            HttpProtocolParams.setContentCharset(params, HTTP.UTF_8);  

 

            SchemeRegistry registry = new SchemeRegistry();  

            registry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));  

            registry.register(new Scheme("https", sf, 443));  

 

            ClientConnectionManager ccm = new ThreadSafeClientConnManager(params, registry);  

 

            return new DefaultHttpClient(ccm, params);  

        } catch (Exception e) {  

            return new DefaultHttpClient();  

        }  

    }

 

分享到:
评论

相关推荐

    java client访问https server(客户端代码、服务器端配置)

    Java客户端访问HTTPS服务器涉及到的是网络安全通信中的SSL/TLS协议,主要目的是确保数据传输的安全性,防止数据被篡改或窃取。在这个过程中,Java的JSSE(Java Secure Socket Extension)框架提供了实现HTTPS通信的...

    HttpsClient.rar

    在"HttpsClient"这个文件中,可能包含了一个简单的Java程序,演示了如何创建和配置`SSLContext`,然后使用`HttpURLConnection`进行HTTPS请求。这个程序可能还涉及到处理自签名证书的情况,因为开发和测试环境中经常...

    VMware vSphere Web Client操作篇

    要访问 VMware vSphere Web Client,需要输入以下 URL:https://10.100.1.201:9443/vsphere-client/,其中 10.100.1.201 是 VMware vSphere 服务器的 IP 地址,9443 是默认的 HTTPS 端口号。输入正确的用户名和密码...

    CASClient集群环境的Session问题及解决方案.docx

    当用户访问 CAS Client 02 时,因为两个应用的 Session 信息是独立的,因此无法读取 CAS Client 01 中的 Session 信息。 解决方案 为了解决 Session 信息的问题,可以使用 CASClient 的 Ticket 机制。在 CASClient...

    factory soft opc client

    总结来说,"Factory Soft OPC Client" 和 "FactorySoft OPC DA Rapid Toolkit 2.01" 提供了一种高效、便捷的方式来实现OPC DA标准的数据访问,使得开发者能够专注于上层应用逻辑,而无需过多关注底层通信细节。...

    SQL Server 2008 Native Client(32&64)

    Microsoft sql server 2008 Native Client (SQL Server Native Client) 是一个同时包含 SQL OLE DB 访问接口和 SQL ODBC 驱动程序的动态链接库 (DLL)。它对使用本机代码 API(ODBC、OLE DB 和 ADO)连接 Microsoft ...

    Microsoft SQL Server Native Client (SQL Native Client)

    Microsoft SQL Server Native Client (SQL Native Client) 是一个同时包含 SQL OLE DB 访问接口和 SQL ODBC 驱动程序的动态链接库 (DLL)。它对使用本机代码 API(ODBC、OLE DB 和 ADO)连接到 Microsoft SQL Server ...

    secoclient认证失败什么情况

    Secoclient是一款常见的企业级安全管理软件,用于提供网络访问控制、数据保护和身份验证等功能。当用户遇到"secoclient认证失败"的问题时,这通常是由于系统配置问题或者用户账户设置异常导致的。 在Mac上安装Seco...

    SQL server Native Client 10.0

    ODBC是SQL Server Native Client 10.0中的关键部分,它是一个标准的应用程序编程接口(API),允许应用程序通过驱动程序访问各种数据库。ODBC驱动程序是连接应用程序和数据库服务器的桥梁,而SQL Server Native ...

    SVNClient华为工具

    3. **权限管理**:华为公司可能使用SVNClient来实施严格的权限控制,确保不同团队或个人只能访问和修改他们被授权的代码部分。 4. **分支和标签管理**:通过创建分支,团队可以在不影响主线开发的情况下进行实验性...

    sql server 2008 native client

    - 对于ODBC应用,可以通过ODBC数据源管理器创建一个新的数据源,选择SQL Server Native Client驱动程序,并配置服务器名称、登录凭据等参数。 - 对于OLE DB应用,开发者可以使用CoCreateInstance函数实例化一个...

    Kepware使用教程—OPC Quick Client具体使用

    - 在OPC Quick Client中,创建一个新的OPC连接,输入服务器名称或IP地址。 - 测试连接以确保可以成功通信。 3. **浏览OPC服务器节点** - 连接成功后,使用OPC Quick Client的树形视图浏览服务器上的OPC项(Items...

    instantclient-11-2

    - 分享精神:描述中提到博主为了便于分享资源,创建了一个新的目录并将 Instant Client 包放于此,这体现了 IT 社区的开放和协作精神。 - 文件夹使用:用户只需获取目录中的文件夹,说明 Instant Client 的实际...

    instantclient_12_1全部下载

    Oracle Instant Client是Oracle公司提供的一款轻量级的数据库连接工具,主要用于在不安装完整Oracle数据库客户端的情况下,...通过理解并正确使用Oracle Instant Client,可以提高开发和运维效率,简化数据库访问流程。

    华为SVNClient for windows

    - 用户权限管理:根据团队角色分配不同的访问权限。 6. Quidway相关: “Huawei Quidway”通常指的是华为的路由器或交换机产品系列,可能是指该SVNClient在华为网络设备开发中的应用。在实际工作中,SVNClient...

    opc quick client 源码

    OPC Quick Client源码是一个基于此标准的客户端实现,它提供了快速访问OPC服务器数据的能力。这个源码是用Visual Studio 2008开发的,所以我们可以期待它是使用C++或C#语言编写的,并且兼容.NET Framework 3.5。 在...

    SQL Server 2012 Native Client.rar

    开发人员可以利用SQL Server Native Client的API在C++、VB.NET、C#等编程语言中创建应用程序,实现高效、安全的数据库访问。同时,它也可以被数据库管理工具和ETL(提取、转换、加载)工具所使用。 6. **升级与...

    SQL Server Native Client 10.0 驱动

    SQL Server Native Client 10.0 是微软推出的一款专门针对SQL Server数据库的客户端驱动程序,它为应用程序提供了访问SQL Server数据库的高效接口。这个驱动程序是SQL Server 2008的一部分,支持ODBC(Open Database...

    数据库客户端Native Client 10.0.rar

    总的来说,SQL Server Native Client 10.0是一个关键的数据库访问组件,尤其对于需要连接到SQL Server 2000及更早期版本的系统来说更是不可或缺。它提供了丰富的功能和优化的性能,使得开发人员能够高效地管理和操作...

    SharePoint 2010 Client Browser 客户端浏览器

    3. SPCB2010.exe:这是SharePoint 2010 Client Browser的可执行文件,它集成了上述两个库,并提供了用户界面来呈现和操作SharePoint站点的结构。用户通过这个应用程序,可以进行文件浏览、搜索、下载、上传等操作,...

Global site tag (gtag.js) - Google Analytics