package org.springblade.modules.auth.sms; import com.alibaba.druid.support.json.JSONUtils; 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:06 */ public class MobTechSmsVerify { private static final String SERVER_URL = "https://webapi.sms.mob.com/sms/verify";// 发送验证码的请求路径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; } }