`

java支持Https协议的一种方案

    博客分类:
  • java
阅读更多

原理是认为所有的网站都是可信的。

 

使用的包情况:

                <!-- http client -->
		<dependency>
			<groupId>commons-httpclient</groupId>
			<artifactId>commons-httpclient</artifactId>
			<version>3.1</version>
		</dependency>
		<dependency>
			<groupId>org.apache.httpcomponents</groupId>
			<artifactId>httpcore</artifactId>
			<version>4.3.3</version>
		</dependency>
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-io</artifactId>
			<version>1.3.2</version>
		</dependency>
		<dependency>
			<groupId>org.apache.httpcomponents</groupId>
			<artifactId>httpclient</artifactId>
			<version>4.3.6</version>
		</dependency>

 

 实例代码:

package com.my.uitls;

import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;

import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;

import org.apache.http.HttpEntity;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;
import org.json.JSONObject;

public class NewSSLClient {
	public static void main(String[] args) throws Exception {
		//初始化
		String url="https://39.156.1.100";
		JSONObject json = new JSONObject();
		json.put("username", "guest");
		json.put("password", "123");
    	String params=json.toString();
    	String responseContent = null;
    	//实现部分
		HttpClientBuilder builder = HttpClientBuilder.create();
		SSLContext ctx = SSLContext.getInstance("TLS");
	//核心部分	
        X509TrustManager tm = new X509TrustManager() {
                public void checkClientTrusted(X509Certificate[] chain,
                        String authType) throws CertificateException {
                }
                public void checkServerTrusted(X509Certificate[] chain,
                        String authType) throws CertificateException {
                }
                public X509Certificate[] getAcceptedIssuers() {
                    return null;
                }
        };
        ctx.init(null, new TrustManager[]{tm}, null);
		builder.setSslcontext(ctx);
		SSLConnectionSocketFactory factory = new SSLConnectionSocketFactory(ctx,SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
		builder.setSSLSocketFactory(factory);
		
		CloseableHttpClient client = builder.build();
		
		HttpPost httpPost = new HttpPost(url);
		httpPost.setHeader("Content-Type", "application/json;charset=UTF-8");
		StringEntity se = new StringEntity(params);
		se.setContentType("text/json");
		RequestConfig requestConfig = RequestConfig.custom()//
				.setSocketTimeout(1000)//
				.setConnectTimeout(1000)//
				.build();// 设置请求和传输超时时间
		httpPost.setEntity(se);
		httpPost.setConfig(requestConfig);
		
		CloseableHttpResponse response = client.execute(httpPost);
		HttpEntity entity = response.getEntity();
		if(response.getStatusLine().getStatusCode()==200) {
			//请求成功
			responseContent = EntityUtils.toString(entity, "UTF-8");
		}else{
			responseContent = null;
		}
		System.out.println(responseContent);
	}
}

 

 

 

分享到:
评论

相关推荐

    使用JAVA实现MODBUS协议通信

    MODBUS协议是由MODICON公司为其控制器设计的一种工业控制系统通信协议,已经被广泛应用于工业控制系统中。该协议是一种主从结构的串行通信方式,实现对设备的访问和控制。MODBUS协议有两种传输模式:ASCII模式和RTU...

    java实现485自由协议通讯

    Java作为一种跨平台的编程语言,具有丰富的库支持,使得在软件层面实现这种通信变得可能。关键在于理解并实现485通信的物理层和数据链路层协议,包括电平转换、波特率设置、数据帧的封装与解析等。 该项目中提到的...

    Java实现opc通信协议代码

    Java实现OPC通信协议主要涉及的是Java编程语言与OPC(OLE for Process Control)技术的结合,这是一种在工业自动化领域广泛使用的数据交换标准。在Java中实现OPC通信,通常需要借助于一些开源库或者商业组件,这些库...

    JAVA业务总体技术方案

    综上所述,JAVA业务总体技术方案是一个全面的技术框架,不仅规范了JAVA业务的系统架构和操作流程,还明确了设备要求、计费策略、安全管理等关键要素,为JAVA业务的实施和运营提供了坚实的技术基础。

    Java下载https文件并上传阿里云oss服务器

    HTTPS(Hypertext Transfer Protocol Secure)是一种加密的通信协议,用于在互联网上安全地传输数据。由于HTTPS采用TLS/SSL协议,因此需要处理服务器的数字证书以确保通信的安全性。 在Java中,处理自定义证书通常...

    Java与数据库:JDBC的解决方案介绍

    4. **Native Protocol - All Java**:这是一种数据库专有的驱动程序,直接将JDBC调用转换为数据库的原生网络协议,使得客户端可以直接与数据库服务器通信,避免了中间层,提高了性能。 选择合适的JDBC驱动程序取决...

    基于Java、JavaFX开发的下载工具,支持下载协议:BT(BitTorrent、磁力链接、种子文件)、HLS(M3U8)等

    1. **Java**:Java是一种广泛使用的跨平台编程语言,具有“一次编写,到处运行”的特性。它被用于开发各种类型的应用程序,包括桌面应用、Web应用和移动应用。在本项目中,Java作为主要的后端编程语言,负责处理逻辑...

    Java实现的点对点短消息发送协议(smpp)开发包源码.7z

    点对点短消息发送协议(SMPP)是一种用于在服务提供商和应用服务器之间进行通信的行业标准协议。它主要用于短信服务(SMS)的传递,允许应用程序通过网络发送和接收短信。在Java中实现SMPP协议,可以让我们创建自己...

    Android ijk播放器编译的so包,支持https协议,支持mpg,avi,wmv等等

    HTTPS是一种基于SSL/TLS的安全传输协议,可以确保数据在互联网上传输时的加密和完整性,对于保护用户隐私和防止中间人攻击至关重要。在Android应用中,如果需要播放HTTPS源的视频,这个定制版ijkplayer是理想的选择...

    Java实现modbus tcp协议数据读写,项目内包含modbus slave仿真软件

    在工业自动化领域,Modbus协议是一种广泛使用的通信协议,它允许设备之间进行数据交换。本项目专注于使用Java语言实现Modbus TCP/IP协议的读写功能,提供了两种不同的实现方案:jlibmodbus和modbus4j库。这两种库都...

    论文研究-基于Java的Web服务解决方案的研究.pdf

    Java作为一种广泛使用的编程语言,提供了强大的Web服务支持,因此,对于Java环境下实现Web服务的研究尤为重要。 首先,Web服务的体系结构是研究的起点。Web服务的体系结构通常被描述为三层模型,即服务提供者...

    Java单点登录解决方案

    Java单点登录(Single Sign-On, SSO)是一种身份验证机制,允许用户在一次登录后访问多个相互关联的应用系统,而无需再次输入凭证。在Java环境中实现SSO,可以提高用户体验,同时简化管理,减少密码记忆负担。下面将...

    Java路径问题最终解决方案之一.

    本文旨在深入探讨Java路径问题,并提供一种有效且通用的解决方案。 #### 二、Java路径类型 Java中使用的路径主要分为两类:绝对路径和相对路径。具体来说,这两种路径又有以下四种表现形式: 1. **URI形式的绝对...

    Java端 简单的MQTT协议通讯例子

    MQTT(Message Queuing Telemetry Transport)协议是一种轻量级的发布/订阅式消息传输协议,广泛应用于物联网(IoT)领域。它设计的目标是高效、低开销、可靠地传输消息,尤其适用于低带宽、高延迟或不可靠的网络...

    山东仁科3.0协议网络设备Java版SDK-V1.0.2.zip

    山东仁科3.0协议是一种专有的通信协议,它可能是基于TCP/IP或者其他的网络通信协议,旨在优化设备与服务器之间的数据交换。这种协议可能包含了数据封装、错误校验、设备状态报告等多种功能,使得设备能高效、稳定地...

    JAVA 的WebService 支持

    尽管如此,SOAP作为一种应用层协议,在早期主要用于远程过程调用(RPC)的实现,其传输协议可以基于HTTP或SMTP等多种方式。 #### SOA发展过程及服务总线(BUS) SOA的发展经历了一系列阶段,通常采用SOA的系统会构建一...

    Java网络开发--TCP协议

    TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。在Java中,通过Socket类和ServerSocket类,开发者可以实现基于TCP的网络通信。 TCP协议在处理客户-服务器事务时存在两个主要问题。一是...

    JAVA应用程序设计开发(Java语言是SUN公司开发的一种编程语言。)

    Java语言是SUN公司开发的一种编程语言。 1.1 Java语言产生和发展的背景  Java语言源于Oak语言,这是SUN公司在一项消费性电子产品软件发展方案中采用的语言。Oak的设计目标是用以开发可靠、紧凑、易于移植的分布式...

    java利用snmp4j包来读取snmp协议数据

    SNMP是一种网络管理标准协议,用于监控网络设备,如路由器、交换机、服务器等的状态和性能。它基于TCP/IP协议栈,通过发送GET和SET请求来获取或修改网络设备的管理对象。 SNMP4j库为Java开发者提供了一个完整的SNMP...

    CFX构建webservice实例,与Spring整合;以及调用https协议的webservice,附带源码,及其证书

    在IT行业中,Web服务是一种广泛使用的通信协议,它允许不同应用程序之间进行数据交换。本教程主要探讨了如何使用Apache CXF(CXF)框架构建Web服务,并将其与Spring框架进行集成,同时处理HTTPS协议的Web服务。源码...

Global site tag (gtag.js) - Google Analytics