`
zzzzzz5530041
  • 浏览: 34291 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

java post请求跳过证书验证

    博客分类:
  • java
阅读更多
 

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;

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.apache.commons.lang.StringUtils;

public class GetSessionIDUtil {
	public static String getSessionId(String postData)
			throws NoSuchAlgorithmException, KeyManagementException {
		String sessionId = "";
		String createSessionURL = "https://hlixgr244.apac.nsroot.net/CONAV/CBOLSessionManagement/createsession";
		try {
			TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() {
				public java.security.cert.X509Certificate[] getAcceptedIssuers() {
					return null;
				}

				public void checkClientTrusted(
						java.security.cert.X509Certificate[] certs,
						String authType) {
				}

				public void checkServerTrusted(
						java.security.cert.X509Certificate[] certs,
						String authType) {
				}
			} };
			HttpsURLConnection
					.setDefaultHostnameVerifier(new HostnameVerifier() {
						public boolean verify(String string, SSLSession ssls) {
							return true;
						}
					});
			SSLContext sc = SSLContext.getInstance("SSL");
			sc.init(null, trustAllCerts, new java.security.SecureRandom());
			HttpsURLConnection
					.setDefaultSSLSocketFactory(sc.getSocketFactory());

			URL url = new URL(createSessionURL);
			HttpURLConnection connect = (HttpURLConnection) url .openConnection();
			connect.setDoOutput(true);
			DataOutputStream out = new DataOutputStream(connect .getOutputStream());
			out.writeBytes(postData);
			out.flush();
			out.close();
			BufferedReader in = new BufferedReader(new InputStreamReader( connect.getInputStream()));

			String line;

			while ((line = in.readLine()) != null) {
				// sessionId += "n" + line;
				System.out.println("page info ===> " + line);
			}
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (UnsupportedEncodingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		System.out.println(sessionId + "s");
		return sessionId;
	}

	public static void main(String[] as) throws KeyManagementException,
			NoSuchAlgorithmException, UnsupportedEncodingException {
		String GRBNumber = "004195137";
		String PageID = "HomePage";
		String Initial_Request_timestamp = "1317023781100";
		String ICHANNEL_ID = "Default";
		String DIGITAL_SIGNATURE = "X6FYQO2Gy2rJ1ir5dVUcyvRFqMoGDYzymy3EfzE0Hv/09A+zlxtKGk4mJRvRhJH0+GtSqQUhzSHFauQeW3ZQ9YqT673JmDapYlh3X0sVdPCcUJLqKIHRiqz91HRTxTcm7y7R+J66+awiKHOhTH9hHxzWf6W5n8RvI2N9cfZDJ9E=";
		DIGITAL_SIGNATURE=StringUtils.replace(DIGITAL_SIGNATURE, "+", "%2B");
		String postData ="GRBNumber=" + GRBNumber + "&PageID=" + PageID
				+ "&Initial_Request_timestamp=" + Initial_Request_timestamp
				+ "&ICHANNEL_ID=" + ICHANNEL_ID + "&DIGITAL_SIGNATURE="
				+ DIGITAL_SIGNATURE;
		
//		postData = URLEncoder.encode(postData);
		System.out.println(postData);
		getSessionId(postData);
		
		
	}
}

分享到:
评论

相关推荐

    http远程接口调用-httpClient+跳过SSL证书校验

    本文将详细介绍如何使用Apache HttpClient库进行HTTP远程接口调用,并讲解如何在Java中跳过SSL证书校验。 HttpClient是Apache提供的一款强大的HTTP客户端库,支持多种HTTP协议版本和功能,包括GET、POST请求、...

    http过代理和忽略ssl证书

    如果忽视SSL证书,虽然可以绕过证书验证,但这样做会暴露用户的数据安全风险,可能导致数据泄露或被篡改。 在服务器增加代理的情况下,代理服务器充当客户端和目标服务器之间的中介。使用代理有多种原因,包括负载...

    httpclient4.5 绕过ssl认证文件访问

    4. **执行HTTP请求**:现在,你可以使用这个HttpClient实例执行HTTPS请求,它将跳过正常的SSL验证过程。 ```java import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpGet; import ...

    JAVA利用HttpClient进行POST请求(HTTPS)实例

    这是因为默认情况下,HttpClient会对HTTPS的服务器证书进行严格的验证,但为了简化示例或在测试环境中,我们可能希望跳过这一过程。以下是SSLClient类的代码: ```java import java.security.cert....

    java,HttpClient模拟上传,绕过SSL认证

    本文将详细介绍如何使用Java和HttpClient来模拟HTTPS文件上传,并跳过SSL验证。 首先,我们需要导入必要的依赖。如果你使用的是Maven项目,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org.apache....

    unirest-java,Java中的Unirest:简化、轻量级的HTTP客户端库。.zip

    1. **证书管理**:Unirest支持SSL/TLS连接,可以配置信任的证书或忽略证书验证。 2. **多部分上传**:可以使用Unirest上传文件或者进行多部分表单数据的提交。 3. **自定义拦截器**:可以添加自定义的拦截器来处理...

    使用httpclient无需证书调用https的示例(java调用https)

    总的来说,这个示例展示了如何在Java中使用HttpClient调用HTTPS服务,同时跳过SSL证书验证。然而,这样做存在安全风险,因为任何中间人攻击者都可以拦截并篡改通信。在生产环境中,你应该始终使用受信任的证书并启用...

    Java中如何通过https调用Webservice接口_测试环境.rar

    // 表示是POST请求 // 设置其他请求头,如Content-Type等 OutputStream out = conn.getOutputStream(); // 发送POST数据 out.write(yourData.getBytes()); out.flush(); out.close(); int responseCode = ...

    模拟登陆51job智联 包括验证码的破解

    对于51job和智联招聘这样的网站,登录通常涉及POST请求,携带用户名、密码以及可能的其他安全参数(如设备标识、session_key等)。 其次,**验证码破解**是一个复杂的过程,因为它是网站用来防止机器人或爬虫自动...

    java大文件分片上传示例

    服务器端需要支持这种重试机制,能够识别重复的分片并跳过。 6. **组合文件**: 当所有分片都上传完毕后,服务器端需要将这些分片按照编号顺序组合成原始文件。可以使用`RandomAccessFile`类在磁盘上拼接这些分片...

    httpclinet实现访问https的示例程序

    但在某些情况下,例如在测试环境或内部开发中,我们可能需要跳过这一验证步骤。在Java中,这可以通过自定义`TrustManager`实现来完成。在提供的代码示例中,应该有一个类或方法,它创建了一个新的`SSLContext`实例,...

    java http多线程下载器

    在Java中,我们通常使用`java.net.HttpURLConnection`或者`org.apache.http.client.HttpClient`(如Apache HttpClient库)来与HTTP服务器进行通信,发起GET或POST请求,获取响应数据。 ### 2. 多线程 多线程是Java...

    Java获取http和https协议返回的json数据

    这样做可以跳过SSL证书的校验,从而允许程序继续执行,但请注意,在生产环境中,通常不推荐这么做,因为这样会降低安全性。在初始化了`SSLContext`之后,通过调用`getSocketFactory()`方法获取`SSLSocketFactory`...

    需要登录才能抓取的新浪微博爬虫例子

    然而,许多网站为了保护用户隐私和防止恶意爬取,会设置登录验证机制,新浪微博就是其中之一。本篇将详细介绍一个解决“需要登录才能抓取的新浪微博爬虫例子”,帮助你理解和构建类似的爬虫程序。 首先,我们需要...

    java web 上传文件代码

    2. **创建Servlet**:创建一个新的Servlet,重写`doPost`方法,因为文件上传通常通过POST请求进行。 3. **初始化SmartUpload对象**:在`doPost`方法中,实例化`SmartUpload`对象,并调用其`initialize`方法,传入`...

    https客户端、服务端代码样例

    在实际应用中,我们还需要处理证书验证、错误处理、POST请求、请求头设置等更复杂的情况。 对于服务端,HTTPS的实现通常涉及SSL/TLS证书、服务器配置以及HTTP服务器软件。例如,使用Apache HTTP Server或Nginx,...

    java实现用户自动登录

    如果一致,说明用户已登录,可以跳过登录界面,直接展示已登录的状态。 5. **验证用户身份**: 为了确保安全,通常还需要验证从 Cookie 中读取的用户名是否有效。这可能涉及数据库查询或与服务器端的其他验证机制...

    JSF 应用程序的生命周期.rar

    如果验证失败,JSF将跳过后续阶段并显示错误消息。 4. **更新模型值阶段(Update Model Values)**:如果所有验证都通过,JSF会将当前UI组件的值更新到应用程序模型中。这意味着模型对象的属性将被设置为用户输入的...

Global site tag (gtag.js) - Google Analytics