java ssl 忽略证书_java https post请求并忽略证书,参数放在body中

packagecn.smartercampus.core.util;import javax.net.ssl.*;importjavax.servlet.http.HttpServletRequest;importorg.apache.commons.lang.StringUtils;import java.io.*;importjava.net.HttpURLConnection;importjava.net.URL;importjava.net.URLEncoder;importjava.security.cert.X509Certificate;importjava.util.HashMap;importjava.util.Map;public classHttpsPostUtil {//添加主机名验证程序类,设置不验证主机

private final static HostnameVerifier DO_NOT_VERIFY = newHostnameVerifier() {public booleanverify(String hostname, SSLSession session) {return true;

}

};//添加信任主机

private static voidtrustAllHosts() {//创建不验证证书链的信任管理器 这里使用的是x509证书

TrustManager[] trustAllCerts = new TrustManager[]{newMyX509TrustManager() {publicjava.security.cert.X509Certificate[] getAcceptedIssuers() {return newjava.security.cert.X509Certificate[]{};

}public voidcheckClientTrusted(X509Certificate[] chain, String authType) {

}public voidcheckServerTrusted(X509Certificate[] chain, String authType) {

}

}};//安装所有信任的信任管理器

try{

SSLContext sc= SSLContext.getInstance("TLS");

sc.init(null, trustAllCerts, newjava.security.SecureRandom());//HttpsURLConnection通过SSLSocket来建立与HTTPS的安全连接,SSLSocket对象是由SSLSocketFactory生成的。

HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());

}catch(Exception e) {

e.printStackTrace();

}

}/*** 发送post 数据

*@paramurls

*@return

*/

public staticString heart(String urls, String param, String contentType, String method) {

StringBuffer sb=newStringBuffer();

DataOutputStream out= null;

BufferedReader responseReader= null;

InputStream in1= null;try{

trustAllHosts();//创建url资源

URL url = newURL(urls);//建立http连接

HttpsURLConnection conn =(HttpsURLConnection) url.openConnection();

conn.setHostnameVerifier(DO_NOT_VERIFY);//设置不用缓存

conn.setUseCaches(false);//设置允许输出

conn.setDoOutput(true);//设置允许输入

conn.setDoInput(true);//设置传递方式

conn.setRequestMethod(method);//System.out.println(conn.getRequestMethod());//设置维持长连接

conn.setRequestProperty("Connection", "Keep-Alive");//设置文件字符集:

conn.setRequestProperty("Charset", "UTF-8");//转换为字节数组//byte[] data = (param).getBytes();// //设置文件长度//conn.setRequestProperty("Content-Length", String.valueOf(data.length));//设置文件类型:

conn.setRequestProperty("Content-Type", contentType);

conn.setRequestProperty("Authorization", param);//开始连接请求

conn.connect();

out= newDataOutputStream(conn.getOutputStream());//写入请求的字符串

out.writeBytes(param);

out.flush();//System.out.println(conn.getResponseCode());//请求返回的状态

if (HttpURLConnection.HTTP_OK ==conn.getResponseCode()) {

System.out.println("连接成功");//请求返回的数据

in1 =conn.getInputStream();

String readLine;

responseReader= new BufferedReader(newInputStreamReader(in1));while((readLine=responseReader.readLine()) != null){

sb.append(readLine).append("\n");

}

}else{

System.out.println("error++");

}

}catch(Exception e) {

}finally{try{if (null !=responseReader)

responseReader.close();if (null !=in1)

in1.close();

}catch(Exception e) {}try{

out.close();

}catch(Exception e) {}

}returnsb.toString();

}/*** 发送post 数据

*@paramurls

*@return

*/

public staticString sendPost(String urls, String param, String contentType, String method) {

StringBuffer sb=newStringBuffer();

DataOutputStream out= null;

BufferedReader responseReader= null;

InputStream in1= null;try{

trustAllHosts();//创建url资源

URL url = newURL(urls);//建立http连接

HttpsURLConnection conn =(HttpsURLConnection) url.openConnection();

conn.setHostnameVerifier(DO_NOT_VERIFY);//设置不用缓存

conn.setUseCaches(false);//设置允许输出

conn.setDoOutput(true);//设置允许输入

conn.setDoInput(true);//设置传递方式

conn.setRequestMethod(method);//System.out.println(conn.getRequestMethod());//设置维持长连接

conn.setRequestProperty("Connection", "Keep-Alive");//设置文件字符集:

conn.setRequestProperty("Charset", "UTF-8");//转换为字节数组//byte[] data = (param).getBytes();// //设置文件长度//conn.setRequestProperty("Content-Length", String.valueOf(data.length));//设置文件类型:

conn.setRequestProperty("Content-Type", contentType);//开始连接请求

conn.connect();

out= newDataOutputStream(conn.getOutputStream());//写入请求的字符串

out.writeBytes(param);

out.flush();//System.out.println(conn.getResponseCode());//请求返回的状态

if (HttpURLConnection.HTTP_OK ==conn.getResponseCode()) {

System.out.println("连接成功");//请求返回的数据

in1 =conn.getInputStream();

String readLine;

responseReader= new BufferedReader(newInputStreamReader(in1));while((readLine=responseReader.readLine()) != null){

sb.append(readLine).append("\n");

}

}else{

System.out.println("error++");

}

}catch(Exception e) {

}finally{try{if (null !=responseReader)

responseReader.close();if (null !=in1)

in1.close();

}catch(Exception e) {}try{

out.close();

}catch(Exception e) {}

}returnsb.toString();

}/*** map转url参数*/

public static String map2Url(MapparamToMap) {if (null == paramToMap ||paramToMap.isEmpty()) {return null;

}

StringBuffer url= newStringBuffer();boolean isfist = true;for (Map.Entryentry : paramToMap.entrySet()) {if(isfist) {

isfist= false;

}else{

url.append("&");

}

url.append(entry.getKey()).append("=");

String value=entry.getValue();if (!StringUtils.isEmpty(value)) {

url.append(value);

}

}returnurl.toString();

}public static voidmain(String[] args) {

System.out.println("123");

Map params = new HashMap();

params.put("client_id", "xx.cn");

params.put("client_secret", "UY83SNFJWLU32NJSLJIK");

params.put("code", "40ce7f41d6562e47dbdc33593ddce1b46444cdb93514b3aaced7be90eb51a16f");

params.put("grant_type", "authorization_code");

params.put("redirect_uri", "xxn/index.jsp");//要发送的POST请求url?Key=Value&Key2=Value2&Key3=Value3的形式//application/json;charset=UTF-8 application/x-www-form-urlencoded;charset=UTF-8

String sb = sendPost("https://id.pdedu.sh.cn/connect/token",map2Url(params),"application/x-www-form-urlencoded;charset=UTF-8","POST");//System.out.println(sb);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值