package com.oying.utils;
|
|
import java.io.BufferedReader;
|
import java.io.DataOutputStream;
|
import java.io.InputStreamReader;
|
import java.net.URL;
|
import java.security.cert.CertificateException;
|
import java.util.HashMap;
|
import java.util.Map;
|
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;
|
import java.security.cert.X509Certificate;
|
|
/**
|
* @author xin
|
* @description
|
* @date 2025/6/4 01:48
|
*/
|
public class Test {
|
|
public static void main(String[] args) {
|
String url = "https://118.178.116.15:8443/winnerrxd/api/trigger/SendMsg ";
|
Map<String, String> paramMap = new HashMap<>();
|
paramMap.put("userCode", "CQLYSXYJ");
|
paramMap.put("userPass", "lych1205!");
|
paramMap.put("DesNo", "15213186640");
|
paramMap.put("Msg", "短信内容【立研】");
|
paramMap.put("smsType","短信类型");
|
try {
|
//GET请求
|
httpsGet(url, paramMap);
|
//POST请求
|
httpsPost(url, paramMap);
|
} catch (Exception e) {
|
e.printStackTrace();
|
System.err.println("调用https失败:"+e);
|
}
|
}
|
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;
|
}
|
}
|
public static String httpsGet(String url,Map<String, String> params) throws
|
Exception
|
{
|
String result = "";
|
BufferedReader in = null;
|
try {
|
|
String urlStr = url + "?" + getParamStr(params);
|
|
System.out.println("GET请求的URL为:"+urlStr);
|
SSLContext sc = SSLContext.getInstance("SSL");
|
sc.init(null, new TrustManager[] { new TrustAnyTrustManager() },
|
new java.security.SecureRandom());
|
URL realUrl = new URL(urlStr);
|
// 打开和URL之间的连接
|
HttpsURLConnection connection = (HttpsURLConnection)
|
realUrl.openConnection();
|
//设置https相关属性
|
connection.setSSLSocketFactory(sc.getSocketFactory());
|
connection.setHostnameVerifier(new TrustAnyHostnameVerifier());
|
connection.setDoOutput(true);
|
|
// 设置通用的请求属性
|
connection.setRequestProperty("accept", "*/*");
|
connection.setRequestProperty("connection", "Keep-Alive");
|
connection.setRequestProperty("user-agent",
|
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
|
// 建立实际的连接
|
connection.connect();
|
|
// 定义 BufferedReader输入流来读取URL的响应
|
in = new BufferedReader(new
|
InputStreamReader(connection.getInputStream(),"UTF-8"));
|
String line;
|
while ((line = in.readLine()) != null) {
|
result += line;
|
}
|
|
System.out.println("获取的结果为:"+result);
|
} catch (Exception e) {
|
System.out.println("发送GET请求出现异常!" + e);
|
//e.printStackTrace();
|
throw e;
|
}
|
// 使用finally块来关闭输入流
|
finally {
|
try {
|
if (in != null) {
|
in.close();
|
}
|
} catch (Exception e2) {
|
//e2.printStackTrace();
|
throw e2;
|
}
|
}
|
return result;
|
|
}
|
public static String httpsPost(String url, Map<String, String> params)
|
throws Exception{
|
String result = "";
|
BufferedReader in = null;
|
String content = getParamStr(params);
|
try {
|
System.out.println("POST请求的URL为:"+url);
|
SSLContext sc = SSLContext.getInstance("SSL");
|
sc.init(null, new TrustManager[] { new TrustAnyTrustManager() },
|
new java.security.SecureRandom());
|
URL console = new URL(url);
|
HttpsURLConnection connection = (HttpsURLConnection)
|
console.openConnection();
|
connection.setSSLSocketFactory(sc.getSocketFactory());
|
connection.setHostnameVerifier(new TrustAnyHostnameVerifier());
|
connection.setDoOutput(true);
|
connection.connect();
|
DataOutputStream out = new
|
DataOutputStream(connection.getOutputStream());
|
out.write(content.getBytes("UTF-8"));
|
// 刷新、关闭
|
out.flush();
|
out.close();
|
// 定义 BufferedReader输入流来读取URL的响应
|
in = new BufferedReader(new
|
InputStreamReader(connection.getInputStream(),"UTF-8"));
|
String line;
|
while ((line = in.readLine()) != null) {
|
result += line;
|
}
|
System.out.println("获取的结果为:"+result);
|
} catch (Exception e) {
|
System.out.println("发送POST请求出现异常!" + e);
|
//e.printStackTrace();
|
throw e;
|
}
|
// 使用finally块来关闭输入流
|
finally {
|
try {
|
if (in != null) {
|
in.close();
|
}
|
} catch (Exception e2) {
|
//e2.printStackTrace();
|
throw e2;
|
}
|
}
|
return result;
|
}
|
|
private static String getParamStr(Map<String, String> params)
|
{
|
String paramStr="";
|
if(params != null && params.size() >0){
|
// 获取参数列表组成参数字符串
|
for (String key : params.keySet()) {
|
paramStr+=key+"="+params.get(key)+"&";
|
}
|
//去除最后一个"&"
|
paramStr=paramStr.substring(0, paramStr.length()-1);
|
}
|
return paramStr;
|
}
|
|
}
|