package org.springblade.modules.auth.sms;
|
|
import javax.net.ssl.*;
|
import java.io.DataOutputStream;
|
import java.io.IOException;
|
import java.io.InputStream;
|
import java.net.HttpURLConnection;
|
import java.net.URL;
|
import java.nio.charset.Charset;
|
import java.security.SecureRandom;
|
import java.security.cert.X509Certificate;
|
|
/**
|
* @PROJECT_NAME: zttj-java-boot
|
* @DESCRIPTION:
|
* @USER: aix
|
* @DATE: 2023/12/11 15:03
|
*/
|
public class MobTechSmsSend {
|
|
private static final String SERVER_URL = "https://webapi.sms.mob.com/sms/sendmsg";// 发送验证码的请求路径URL
|
private static final String APP_KEY = "appkey=20e92ce48d7db&zone=+86";// 账号
|
|
/**
|
* 发起https 请求
|
* @param phone
|
* @param code
|
* @return
|
*/
|
public static String requestData(String phone ,String code){
|
String params = APP_KEY + "&phone=" + phone + "&code=" + code;
|
HttpURLConnection conn = null;
|
try {
|
// Create a trust manager that does not validate certificate chains
|
TrustManager[] trustAllCerts = new TrustManager[]{new X509TrustManager(){
|
public X509Certificate[] getAcceptedIssuers(){return null;}
|
public void checkClientTrusted(X509Certificate[] certs, String authType){}
|
public void checkServerTrusted(X509Certificate[] certs, String authType){}
|
}};
|
|
// Install the all-trusting trust manager
|
SSLContext sc = SSLContext.getInstance("TLS");
|
sc.init(null, trustAllCerts, new SecureRandom());
|
|
//ip host verify
|
HostnameVerifier hv = new HostnameVerifier() {
|
public boolean verify(String urlHostName, SSLSession session) {
|
return urlHostName.equals(session.getPeerHost());
|
}
|
};
|
|
//set ip host verify
|
HttpsURLConnection.setDefaultHostnameVerifier(hv);
|
|
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
|
|
URL url = new URL(SERVER_URL);
|
conn = (HttpURLConnection) url.openConnection();
|
conn.setRequestMethod("POST");// POST
|
conn.setConnectTimeout(3000);
|
conn.setReadTimeout(3000);
|
// set params ;post params
|
if (params!=null) {
|
conn.setDoOutput(true);
|
DataOutputStream out = new DataOutputStream(conn.getOutputStream());
|
out.write(params.getBytes(Charset.forName("UTF-8")));
|
out.flush();
|
out.close();
|
}
|
conn.connect();
|
//get result
|
if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
|
String result = parsRtn(conn.getInputStream());
|
return result;
|
} else {
|
System.out.println(conn.getResponseCode() + " "+ conn.getResponseMessage());
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
} finally {
|
if (conn != null)
|
conn.disconnect();
|
}
|
return null;
|
}
|
|
private static String parsRtn(InputStream in) throws IOException {
|
byte[] data = new byte[1024];
|
int len = 0;
|
String result = "";
|
while ((len = in.read(data)) != -1) {
|
result += new String(data, 0, len);
|
}
|
return result;
|
}
|
|
}
|