JAVA HTTPS
来源:互联网 发布:音乐修改软件 编辑:程序博客网 时间:2024/05/23 23:54
因为微信需要使用到https请求,所以贴下代码:
需要引入包下载地址:点击打开链接
需要写一个类,代码如下:
package com.dc.test;import java.io.IOException;import java.net.Socket;import java.net.UnknownHostException;import java.security.KeyManagementException;import java.security.KeyStore;import java.security.KeyStoreException;import java.security.NoSuchAlgorithmException;import java.security.UnrecoverableKeyException;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.HttpVersion;import org.apache.http.client.HttpClient;import org.apache.http.conn.ClientConnectionManager;import org.apache.http.conn.scheme.PlainSocketFactory;import org.apache.http.conn.scheme.Scheme;import org.apache.http.conn.scheme.SchemeRegistry;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;import org.apache.http.params.BasicHttpParams;import org.apache.http.params.HttpParams;import org.apache.http.params.HttpProtocolParams;public class SSLSocketFactoryEx extends org.apache.http.conn.ssl.SSLSocketFactory{ SSLContext sslContext = SSLContext.getInstance("TLS"); public SSLSocketFactoryEx(KeyStore truststore) throws NoSuchAlgorithmException, KeyManagementException, KeyStoreException, UnrecoverableKeyException { super(truststore); TrustManager tm = new X509TrustManager() { public X509Certificate[] getAcceptedIssuers() { return null; } public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { } public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { } }; this.sslContext.init(null, new TrustManager[] { tm }, null); } public Socket createSocket(Socket socket, String host, int port, boolean autoClose) throws IOException, UnknownHostException { return this.sslContext.getSocketFactory().createSocket(socket, host, port, autoClose); } public Socket createSocket() throws IOException { return this.sslContext.getSocketFactory().createSocket(); } public static HttpClient getNewHttpClient() { try { KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType()); trustStore.load(null, null); org.apache.http.conn.ssl.SSLSocketFactory sf = new SSLSocketFactoryEx(trustStore); sf.setHostnameVerifier(org.apache.http.conn.ssl.SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); HttpParams params = new BasicHttpParams(); HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1); HttpProtocolParams.setContentCharset(params, "UTF-8"); SchemeRegistry registry = new SchemeRegistry(); registry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80)); registry.register(new Scheme("https", sf, 443)); ClientConnectionManager ccm = new ThreadSafeClientConnManager(params, registry); return new DefaultHttpClient(ccm, params); } catch (Exception e) { } return new DefaultHttpClient(); }}
https代码:
/** * HTTPS GET * * @param url */public static void httpsGet(String url) {try {HttpClient httpclient = SSLSocketFactoryEx.getNewHttpClient();HttpGet request = new HttpGet(url);HttpResponse response = httpclient.execute(request);HttpEntity entity = response.getEntity();if (entity != null) {String content = IOUtils.toString(entity.getContent(), "UTF-8");JSONObject jo = new JSONObject(content);String test = jo.getString("test"); // 使用json对象获取返回的值System.out.println(test);}} catch (Exception e) {e.printStackTrace();}}/** * HTTPS POST * @param url */public static void httpsPost(String url) {try {org.apache.http.client.HttpClient httpclient = SSLSocketFactoryEx.getNewHttpClient();HttpPost post = new HttpPost(url);// 发送的消息体是json格式的可以这样写JSONObject jsonObj = new JSONObject();jsonObj.put("component_appid", "");jsonObj.put("component_appsecret", "");jsonObj.put("component_verify_ticket", "");post.setEntity(new StringEntity(jsonObj.toString()));HttpResponse response = httpclient.execute(post);HttpEntity entity = response.getEntity();if (entity != null) {String content = IOUtils.toString(entity.getContent(), "UTF-8");System.out.println("content: " + content);JSONObject jo = new JSONObject(content); String test = jo.getString("test"); // 使用json对象获取返回的值System.out.println(test);}} catch (Exception e) {e.printStackTrace();}}
阅读全文
0 0
- java ----https
- HTTPS Java
- JAVA HTTPS
- java SSL https 资料
- java 访问https站点
- JAVA访问Https
- Simple Java HTTPS server
- Java https请求 HttpsURLConnection
- java https安全传输
- java 实现https请求
- java 实现https请求
- java Https 相关资料
- java Https的请求
- java 发送 https请求
- java 实现https请求
- 神秘的java Https
- Java https请求 HttpsURLConnection
- Java https调用代码
- 逻辑运算(逻辑非,逻辑与,逻辑或,逻辑异或)
- 自动文摘评测方法:Rouge-1、Rouge-2、Rouge-L、Rouge-S
- [Leetcode]Dynamic Programming
- 欢迎使用CSDN-markdown编辑器
- Idea Mac OS X 10.5+快捷键
- JAVA HTTPS
- knn、cross-validation
- 如何用R和API免费获取Web数据?
- leetCode-Best Time to Buy and Sell Stock with Transaction Fee
- echarts制作迁徙图
- The Shortest Path in Nya Graph HDU
- Python编程遇问题,文科生怎么办?
- [jzoj]3555. 【GDKOI2014模拟】树的直径(结论题-树的性质)
- Leetcode:Longest Consecutive Sequence