`

java post https 支持

    博客分类:
  • java
 
阅读更多
import java.io.IOException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

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

import org.apache.commons.collections.MapUtils;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.conn.ClientConnectionManager;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.scheme.SchemeRegistry;
import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.HttpParams;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;

import com.alibaba.fastjson.JSONObject;

@SuppressWarnings("all")
public class HttpsUtil {

	public static String get(String url, Map<String, Object> param) {
		String responseBody = null;
		try {
			HttpClient httpclient = new DefaultHttpClient();
			// Secure Protocol implementation.
			SSLContext ctx = SSLContext.getInstance("SSL");
			// Implementation of a trust manager for X509 certificates
			X509TrustManager tm = new X509TrustManager() {
				public void checkClientTrusted(X509Certificate[] xcs, String string) throws CertificateException {
				}
				public void checkServerTrusted(X509Certificate[] xcs, String string) throws CertificateException {
				}
				public X509Certificate[] getAcceptedIssuers() {
					return null;
				}
			};
			ctx.init(null, new TrustManager[] { tm }, null);
			SSLSocketFactory ssf = new SSLSocketFactory(ctx);
			ClientConnectionManager ccm = httpclient.getConnectionManager();
			// register https protocol in httpclient's scheme registry
			SchemeRegistry sr = ccm.getSchemeRegistry();
			sr.register(new Scheme("https", 443, ssf));
			HttpGet httpget = new HttpGet(url);
			if(MapUtils.isNotEmpty(param)){
				HttpParams params = httpclient.getParams();
				for(Map.Entry<String, Object> entry : param.entrySet()){
					params.setParameter(entry.getKey(), entry.getValue());
				}
				httpget.setParams(params);
			}
			ResponseHandler responseHandler = new BasicResponseHandler();
			responseBody = httpclient.execute(httpget, responseHandler);
		} catch (NoSuchAlgorithmException e) {
			e.printStackTrace();
		} catch (ClientProtocolException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (Exception ex) {
			ex.printStackTrace();
		}
		return responseBody;
	}
	
	public static String post(String url ,Map<String,Object> param){
		String responseBody = null;
		try {
			HttpClient httpclient = new DefaultHttpClient();
			// Secure Protocol implementation.
			SSLContext ctx = SSLContext.getInstance("SSL");
			// Implementation of a trust manager for X509 certificates
			X509TrustManager tm = new X509TrustManager() {
				public void checkClientTrusted(X509Certificate[] xcs, String string) throws CertificateException {
				}
				public void checkServerTrusted(X509Certificate[] xcs, String string) throws CertificateException {
				}
				public X509Certificate[] getAcceptedIssuers() {
					return null;
				}
			};
			ctx.init(null, new TrustManager[] { tm }, null);
			SSLSocketFactory ssf = new SSLSocketFactory(ctx);
			ClientConnectionManager ccm = httpclient.getConnectionManager();
			// register https protocol in httpclient's scheme registry
			SchemeRegistry sr = ccm.getSchemeRegistry();
			sr.register(new Scheme("https", 443, ssf));
			HttpPost post = new HttpPost(url);
			List<BasicNameValuePair> formparams = new ArrayList<BasicNameValuePair>();
            post.setEntity(new UrlEncodedFormEntity(formparams, HTTP.UTF_8));
            post.setEntity(new StringEntity(JSONObject.toJSONString(param)));
            HttpResponse response = httpclient.execute(post);
            HttpEntity entity = response.getEntity();
            responseBody = EntityUtils.toString(entity);
		} catch (NoSuchAlgorithmException e) {
			e.printStackTrace();
		} catch (ClientProtocolException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (Exception ex) {
			ex.printStackTrace();
		}
		return responseBody;
	}
}

 

分享到:
评论

相关推荐

    java支持https的Post请求

    本文将详细介绍如何在Java中实现支持HTTPS的POST请求,包括如何处理SSL证书校验问题。 首先,理解HTTPS的工作原理至关重要。HTTPS基于SSL/TLS协议,它在HTTP层和TCP/IP层之间添加了一个安全层,用于加密数据传输并...

    Java Https工具类,Java Https Post请求

    这个“Java Https工具类,Java Https Post请求”可能是一个自定义的类,用于简化发送HTTPS POST请求的过程。以下是对这个主题的详细讲解: 1. **HTTPS基础**: - HTTPS是在HTTP上添加了SSL/TLS(Secure Sockets ...

    java发送http/https请求(get/post)代码

    本文将详细讲解如何使用Java发送GET和POST请求,以及涉及的HTTPS安全连接。 首先,理解HTTP和HTTPS的区别至关重要。HTTP(超文本传输协议)是一种用于分发超媒体信息的应用层协议,而HTTPS(超文本传输安全协议)是...

    Java发 Https请求工具类 支持SSL

    2. **HTTPS请求方式**: HTTPS不仅支持GET方法,用于获取资源,还支持POST方法,用于提交数据到服务器。此外,还有PUT、DELETE、PATCH等其他HTTP方法,这些在特定场景下也可能需要。 3. **自定义请求方式**: 这个...

    java post文件流的操作

    在Java中,通过`HttpURLConnection`类可以轻松地实现POST请求,用于发送和接收文件流。该方法主要涉及到以下几个步骤: - **创建URL对象**:首先需要根据指定的URL地址创建一个`URL`对象。 - **设置HTTP连接属性**...

    HttpUtils Java get post 工具类

    总结,"HttpUtils Java get post 工具类"是用于简化Java中HTTP GET和POST请求的实用工具,它还支持小文件的发送。通过这个工具类,开发者可以快速地进行网络请求,而无需关注底层HTTP连接的复杂性。同时,通过测试类...

    Java实现的Https请求工具类

    2. **设置Socket工厂**:使用创建的SSLContext,我们可以创建一个SSLSocketFactory,该工厂会生成支持HTTPS的Socket。 ```java SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory(); ``` 3. **...

    JAVA利用HttpClient进行HTTPS接口调用

    在Java中,我们通常通过JSSE(Java Secure Socket Extension)来支持SSL/TLS连接。 在`SSLClient.java`文件中,我们可能会看到配置SSL上下文(SSLContext)的过程。这是设置信任的证书和密钥存储的地方。代码可能...

    Post工具网络接口测试(支持HTTPS)

    标题中的“Post工具网络接口测试(支持HTTPS)”指的是一个专门设计用于进行POST方法网络接口测试的工具,它具有对HTTPS协议的支持。POST方法是HTTP协议中的一种,常用于向服务器发送数据,比如提交表单或者更新资源。...

    java_https_post(兼容http).zip

    Java HTTPS POST请求是一种在Java编程中通过HTTPS协议发送POST数据的方法。HTTPS(HyperText Transfer Protocol Secure)是HTTP的安全版本,它使用SSL/TLS协议来加密通信,确保数据在网络中的传输安全。这个压缩包...

    https支持put get post请求

    在标题“HTTPS支持PUT GET POST请求”中,主要涉及的是HTTPS协议对HTTP中三种主要请求方法的支持。 1. **GET请求**:这是HTTP中最常见的请求方法,用于从服务器获取资源。用户在浏览器地址栏输入URL,浏览器就会...

    java发送get或post请求源码

    这里我们将介绍如何使用这两个类以及`java.io`包中的相关类来构建GET和POST请求。 1. **发送GET请求**: GET请求通常用于获取资源,参数包含在URL中。以下是一个简单的示例: ```java import java.io....

    java进行POST或者GET请求

    总的来说,这些文件共同构成了一个完整的HTTP客户端实现,包括POST请求、HTTPS支持、上传进度反馈等功能。在实际项目中,我们还需要考虑错误处理、重试策略、线程安全以及性能优化等其他方面。了解并熟练使用这些...

    java后台用GET POST方式提交封装类

    这个RequestHelper类只是一个基础版本,实际使用中可能需要增加对HTTPS的支持、错误处理、重试机制、线程安全等高级功能。此外,对于复杂的HTTP操作,如上传文件、处理响应头、管理Cookie,你可能需要使用更强大的库...

    完整的HttpClient的get和post使用方法实例(java源代码)

    - **HTTPS支持**:通过`SSLContext`和`KeyManager`配置SSL/TLS连接。 总之,HttpClient是一个强大且灵活的HTTP客户端库,适用于各种Java应用中的网络通信需求。通过理解和实践上述示例,你将能够熟练地使用...

    java发送post和get请求源码及jar包

    这两个例子展示了如何使用Java内置的HttpURLConnection类发送GET和POST请求。然而,对于更复杂的场景,如管理cookies、重定向、超时控制等,使用Apache HttpClient或OkHttp等第三方库可能会更方便和强大。 在实际...

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

    在Java编程中,Apache HttpClient库是一个非常常用的工具,它提供了HTTP客户端的功能,支持HTTP和HTTPS协议。本实例将介绍如何使用HttpClient进行POST请求,特别是针对HTTPS的请求,以避免证书校验过程。 首先,...

    https发送post请求

    4. **注册自定义SSL Socket工厂**:将创建的SSL上下文与HTTP客户端关联起来,使其支持HTTPS连接。 5. **设置超时时间**:为避免长时间等待无响应的情况,需设置连接超时时间和读取超时时间。 6. **构建POST请求**:...

    ajax跨域post(java例子)

    本篇文章将详细讲解如何使用Ajax进行跨域POST请求,并结合Java的Spring框架给出具体示例。 ### 1. 跨域请求的概念 跨域请求是指一个域下的文档或脚本尝试请求另一个域下的资源。出于安全考虑,浏览器默认禁止这种...

Global site tag (gtag.js) - Google Analytics