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请求,包括如何处理SSL证书校验问题。 首先,理解HTTPS的工作原理至关重要。HTTPS基于SSL/TLS协议,它在HTTP层和TCP/IP层之间添加了一个安全层,用于加密数据传输并...
这个“Java Https工具类,Java Https Post请求”可能是一个自定义的类,用于简化发送HTTPS POST请求的过程。以下是对这个主题的详细讲解: 1. **HTTPS基础**: - HTTPS是在HTTP上添加了SSL/TLS(Secure Sockets ...
本文将详细讲解如何使用Java发送GET和POST请求,以及涉及的HTTPS安全连接。 首先,理解HTTP和HTTPS的区别至关重要。HTTP(超文本传输协议)是一种用于分发超媒体信息的应用层协议,而HTTPS(超文本传输安全协议)是...
2. **HTTPS请求方式**: HTTPS不仅支持GET方法,用于获取资源,还支持POST方法,用于提交数据到服务器。此外,还有PUT、DELETE、PATCH等其他HTTP方法,这些在特定场景下也可能需要。 3. **自定义请求方式**: 这个...
在Java中,通过`HttpURLConnection`类可以轻松地实现POST请求,用于发送和接收文件流。该方法主要涉及到以下几个步骤: - **创建URL对象**:首先需要根据指定的URL地址创建一个`URL`对象。 - **设置HTTP连接属性**...
总结,"HttpUtils Java get post 工具类"是用于简化Java中HTTP GET和POST请求的实用工具,它还支持小文件的发送。通过这个工具类,开发者可以快速地进行网络请求,而无需关注底层HTTP连接的复杂性。同时,通过测试类...
2. **设置Socket工厂**:使用创建的SSLContext,我们可以创建一个SSLSocketFactory,该工厂会生成支持HTTPS的Socket。 ```java SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory(); ``` 3. **...
在Java中,我们通常通过JSSE(Java Secure Socket Extension)来支持SSL/TLS连接。 在`SSLClient.java`文件中,我们可能会看到配置SSL上下文(SSLContext)的过程。这是设置信任的证书和密钥存储的地方。代码可能...
标题中的“Post工具网络接口测试(支持HTTPS)”指的是一个专门设计用于进行POST方法网络接口测试的工具,它具有对HTTPS协议的支持。POST方法是HTTP协议中的一种,常用于向服务器发送数据,比如提交表单或者更新资源。...
Java HTTPS POST请求是一种在Java编程中通过HTTPS协议发送POST数据的方法。HTTPS(HyperText Transfer Protocol Secure)是HTTP的安全版本,它使用SSL/TLS协议来加密通信,确保数据在网络中的传输安全。这个压缩包...
在标题“HTTPS支持PUT GET POST请求”中,主要涉及的是HTTPS协议对HTTP中三种主要请求方法的支持。 1. **GET请求**:这是HTTP中最常见的请求方法,用于从服务器获取资源。用户在浏览器地址栏输入URL,浏览器就会...
这里我们将介绍如何使用这两个类以及`java.io`包中的相关类来构建GET和POST请求。 1. **发送GET请求**: GET请求通常用于获取资源,参数包含在URL中。以下是一个简单的示例: ```java import java.io....
总的来说,这些文件共同构成了一个完整的HTTP客户端实现,包括POST请求、HTTPS支持、上传进度反馈等功能。在实际项目中,我们还需要考虑错误处理、重试策略、线程安全以及性能优化等其他方面。了解并熟练使用这些...
这个RequestHelper类只是一个基础版本,实际使用中可能需要增加对HTTPS的支持、错误处理、重试机制、线程安全等高级功能。此外,对于复杂的HTTP操作,如上传文件、处理响应头、管理Cookie,你可能需要使用更强大的库...
- **HTTPS支持**:通过`SSLContext`和`KeyManager`配置SSL/TLS连接。 总之,HttpClient是一个强大且灵活的HTTP客户端库,适用于各种Java应用中的网络通信需求。通过理解和实践上述示例,你将能够熟练地使用...
这两个例子展示了如何使用Java内置的HttpURLConnection类发送GET和POST请求。然而,对于更复杂的场景,如管理cookies、重定向、超时控制等,使用Apache HttpClient或OkHttp等第三方库可能会更方便和强大。 在实际...
在Java编程中,Apache HttpClient库是一个非常常用的工具,它提供了HTTP客户端的功能,支持HTTP和HTTPS协议。本实例将介绍如何使用HttpClient进行POST请求,特别是针对HTTPS的请求,以避免证书校验过程。 首先,...
4. **注册自定义SSL Socket工厂**:将创建的SSL上下文与HTTP客户端关联起来,使其支持HTTPS连接。 5. **设置超时时间**:为避免长时间等待无响应的情况,需设置连接超时时间和读取超时时间。 6. **构建POST请求**:...
本篇文章将详细讲解如何使用Ajax进行跨域POST请求,并结合Java的Spring框架给出具体示例。 ### 1. 跨域请求的概念 跨域请求是指一个域下的文档或脚本尝试请求另一个域下的资源。出于安全考虑,浏览器默认禁止这种...