/*
* 文 件 名: GetCSATHttpsTest.java
* 版 权: Copyright 2000-2009 Huawei Tech. Co. Ltd. All Rights Reserved.
* 描 述: <描述>
* 修 改 人: cwx223372
* 修改时间: 2015年9月11日
* 修改版本:
*/
package com.huawei.csservice.action.service;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.URL;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSession;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import org.junit.Test;
import com.huawei.common.components.encrypt.EncryptedUtils;
import com.huawei.common.components.encrypt.HmacSHA256Encrypter;
import com.huawei.common.system.COMException;
import com.huawei.common.utils.CharsetUtils;
import com.huawei.common.utils.access.jackson.JacksonMapper;
import com.huawei.csservice.action.service.event.GetCSATREvt;
public class GetCSATHttpsTest
{
public static String httpsurl = "https:www.baidu.com";
/**
* 测试
*/
@Test
public void testHttps()
throws IOException, NoSuchAlgorithmException, KeyManagementException, COMException
{
TrustManager myX509TrustManager = new X509TrustManager()
{
@Override
public X509Certificate[] getAcceptedIssuers()
{
return new X509Certificate[] {};
}
@Override
public void checkServerTrusted(X509Certificate[] chain, String authType)
throws CertificateException
{
}
@Override
public void checkClientTrusted(X509Certificate[] chain, String authType)
throws CertificateException
{
}
};
//设置SSLContext
SSLContext sslcontext = SSLContext.getInstance("TLS");
sslcontext.init(null, new TrustManager[] {myX509TrustManager}, null);
// 创建URL对象
URL myURL = new URL(httpsurl);
// 创建HttpsURLConnection对象,并设置其SSLSocketFactory对象
HttpsURLConnection httpsConn = (HttpsURLConnection)myURL.openConnection();
//设置套接工厂
httpsConn.setSSLSocketFactory(sslcontext.getSocketFactory());
HostnameVerifier hostNameVerify = new HostnameVerifier()
{
/**
* Always return true
*/
public boolean verify(String urlHostName, SSLSession session)
{
return true;
}
};
httpsConn.setHostnameVerifier(hostNameVerify);
//加入post数据
String postdata = getPostData();
httpsConn.setRequestMethod("POST");
httpsConn.setDoOutput(true);
DataOutputStream out = new DataOutputStream(httpsConn.getOutputStream());
if (null != postdata)
{
out.writeBytes(postdata);
}
out.flush();
out.close();
//获取输入流
BufferedReader in = new BufferedReader(new InputStreamReader(httpsConn.getInputStream()));
int code = httpsConn.getResponseCode();
if (HttpsURLConnection.HTTP_OK == code)
{
String temp = in.readLine();
//輸出字符串
while (temp != null)
{
System.out.println(temp);
temp = in.readLine();
}
}
}
/**
* 获取post数据
*/
private static String getPostData()
throws UnsupportedEncodingException, COMException
{
return "";
}
}
相关推荐
在Java编程环境中,进行HTTPS POST请求是常见的网络通信任务,特别是在需要安全传输敏感数据时,如用户登录信息或支付详情。HTTPS(HTTP over SSL/TLS)提供了加密和身份验证机制,确保了数据的隐私和完整性。本文将...
这个“Java Https工具类,Java Https Post请求”可能是一个自定义的类,用于简化发送HTTPS POST请求的过程。以下是对这个主题的详细讲解: 1. **HTTPS基础**: - HTTPS是在HTTP上添加了SSL/TLS(Secure Sockets ...
在本文中,我们将详细介绍如何使用JAVA的HttpClient库来发送POST请求,以便与HTTPS服务器进行交互。首先,我们需要继承DefaultHttpClient类,以便自定义HttpClient的行为。然后,我们需要使用X509TrustManager来忽略...
本文将详细讲解如何使用Java发送GET和POST请求,以及涉及的HTTPS安全连接。 首先,理解HTTP和HTTPS的区别至关重要。HTTP(超文本传输协议)是一种用于分发超媒体信息的应用层协议,而HTTPS(超文本传输安全协议)是...
这里我们将深入探讨如何使用Java发送GET和POST请求,以及处理JSON数据。 首先,让我们关注GET请求。GET请求主要用于从服务器获取资源,其参数通常包含在URL中。在Java中,可以使用`HttpURLConnection`类或者第三方...
java的get和post请求,获取json的工具类,https时会存在ssl校验的问题,工具会自动去除ssl校验。
3. **发送HTTPS请求**:现在你可以使用HttpClient发送GET或POST请求了: ```java HttpGet request = new HttpGet("https://your.server.com/path"); HttpResponse response = httpClient.execute(request); int ...
- 以上两行代码的作用是告诉 Java 虚拟机信任 `tomcat.keystore` 中的证书,并使用指定的密码访问密钥库。 5. **发送 HTTPS 请求**: - 使用上述配置后的环境发送 HTTPS 请求,此时应该能正确地与服务器建立安全...
### HTTPS 发送 POST 请求知识点详解 #### 一、概述 在现代互联网应用中,安全通信变得尤为重要。HTTPS(Hypertext Transfer Protocol Secure)是HTTP的安全版本,它通过使用SSL/TLS协议来保护通信数据的隐私性和...
在Java中,我们通常使用`java.net.HttpURLConnection`类或者Apache HttpClient库来实现HTTP和HTTPS的POST请求。以下是一个使用`HttpURLConnection`的基本步骤: 1. **创建URL对象**:首先,根据目标服务器地址创建...
以上就是使用`HttpURLConnection`发送POST请求的基本步骤。然而,实际开发中,我们可能更倾向于使用Apache HttpClient或OkHttp,因为它们提供了更高级的功能,如自动重试、超时设置和更好的性能。 对于标签中的...
这个Java HTTPS请求工具类是微信内部使用的,因此可能已经针对微信服务进行了优化,适用于那些需要与微信API进行安全通信的场景。使用该工具类可以大大简化代码,提高开发效率,同时确保数据传输的安全性。通过阅读...
本篇文章将详细介绍如何使用Java语言实现Http和Https请求的工具类,包括如何建立Https连接、如何实现Post请求、如何处理SSL验证等内容。 在Java中,使用HttpURLConnection类可以实现Http和Https请求,但是对于...
使用`HttpsURLConnection`创建连接,并设置必要的请求属性,如请求方法(GET或POST),超时时间等。下面是一个简单的示例: ```java URL url = new URL("https://example.com/file.txt"); HttpsURLConnection ...
Java RESTful Web Service实战是Java开发领域中一个重要的实践教程,它主要涵盖了使用Java技术和RESTful架构风格来创建高效、可扩展的网络服务。REST(Representational State Transfer)是一种网络应用程序的设计...
本实例将介绍如何使用HttpClient进行POST请求,特别是针对HTTPS的请求,以避免证书校验过程。 首先,我们需要创建一个自定义的SSLClient类,这个类继承自DefaultHttpClient。在SSLClient类中,我们将重写SSL证书的...
在这个实例中,我们将深入理解如何使用HttpClient进行GET和POST请求。 **一、HttpClient的GET请求** GET请求是最基础的HTTP请求方式,用于从服务器获取资源。在HttpClient中,可以通过`HttpGet`类来创建GET请求。...
本篇文章将深入探讨如何在Java中实现读取不同格式(如cer、der、crt)的证书,以及如何使用这些证书访问HTTPS接口并获取返回数据。 首先,我们需要了解证书的基本概念。证书通常包含了公钥和一些身份信息,由受信任...
3. **创建HttpURLConnection对象**:使用`java.net.URL`类打开与目标服务器的连接,并通过`openConnection()`方法获取HttpURLConnection对象。然后,将Socket工厂设置为HTTPS连接的套接字工厂。 ```java URL url = ...