博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java使用https post发送json数据
阅读量:6805 次
发布时间:2019-06-26

本文共 2438 字,大约阅读时间需要 8 分钟。

hot3.png

package com.saygou.weixin;import java.io.ByteArrayOutputStream;import java.io.DataOutputStream;import java.io.IOException;import java.io.InputStream;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;public class HttpsUtil {	private static class TrustAnyTrustManager implements X509TrustManager {		public void checkClientTrusted(X509Certificate[] chain, String authType)				throws CertificateException {		}		public void checkServerTrusted(X509Certificate[] chain, String authType)				throws CertificateException {		}		public X509Certificate[] getAcceptedIssuers() {			return new X509Certificate[] {};		}	}	private static class TrustAnyHostnameVerifier implements HostnameVerifier {		public boolean verify(String hostname, SSLSession session) {			return true;		}	}	/**	 * post方式请求服务器(https协议)	 * 	 * @param url	 *            请求地址	 * @param content	 *            参数	 * @param charset	 *            编码	 * @return	 * @throws NoSuchAlgorithmException	 * @throws KeyManagementException	 * @throws IOException	 */	public static byte[] post(String url, String content, String charset)			throws NoSuchAlgorithmException, KeyManagementException,			IOException {		SSLContext sc = SSLContext.getInstance("SSL");		sc.init(null, new TrustManager[] { new TrustAnyTrustManager() },				new java.security.SecureRandom());		URL console = new URL(url);		HttpsURLConnection conn = (HttpsURLConnection) console.openConnection();		conn.setSSLSocketFactory(sc.getSocketFactory());		conn.setHostnameVerifier(new TrustAnyHostnameVerifier());		conn.setDoOutput(true);		conn.connect();		DataOutputStream out = new DataOutputStream(conn.getOutputStream());		out.write(content.getBytes(charset));		// 刷新、关闭		out.flush();		out.close();		InputStream is = conn.getInputStream();		if (is != null) {			ByteArrayOutputStream outStream = new ByteArrayOutputStream();			byte[] buffer = new byte[1024];			int len = 0;			while ((len = is.read(buffer)) != -1) {				outStream.write(buffer, 0, len);			}			is.close();			return outStream.toByteArray();		}		return null;	}}

转载于:https://my.oschina.net/gaopeng8/blog/350102

你可能感兴趣的文章
通用业务系统基础平台(四) 行政管理
查看>>
poj2029 Get Many Persimmon Trees
查看>>
Linux用户和组的基础概念
查看>>
权限管理
查看>>
kafka消费组、消费者
查看>>
A股财报摘要历史数据查询Web API使用方法
查看>>
matlab查找回车字符
查看>>
深浅拷贝
查看>>
Linux 64位操作系统 数据类型大小
查看>>
数学是中文字型设计的短板
查看>>
TYVJP1933 绿豆蛙的归宿
查看>>
HDU 2151 Worm
查看>>
c# 操作Word总结(车)
查看>>
js刷新页面方法大全
查看>>
阿花宝宝 Java基础笔记 之 流程控制(一)
查看>>
算法2
查看>>
单调递增最长子序列
查看>>
18、设计模式-行为型模式-迭代器模式
查看>>
ZOJ 1058 Currency Exchange
查看>>
Extjs4.2纯前台导出Excel总结
查看>>