本文為您提供了Java語言版本的短信單條發(fā)送接口對接DEMO示例
//測試ok by zero 2025-07-24
import java.net.URI;
import java.net.URLEncoder;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.nio.charset.StandardCharsets;
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Map;
import java.util.*;
public class test
{
public static void main(String args[])
{
String url = "https://api.ihuyi.com/sms/Submit.json";
Map<String, String> headers = new HashMap<>();
headers.put("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
HashMap<String, String> bodyArr = new HashMap<>();
bodyArr.put("account", "xxxxxxxx"); //APIID(用戶中心【文本短信】-【驗(yàn)證碼/通知短信】-【產(chǎn)品總覽】查看)
bodyArr.put("password", "xxxxxxxxx"); //1、APIKEY(用戶中心【文本短信】-【驗(yàn)證碼/通知短信】-【產(chǎn)品總覽】查看)
2、動(dòng)態(tài)密碼(生成動(dòng)態(tài)密碼方式請看該文檔末尾的說明)
bodyArr.put("mobile", "136xxxxxxxx"); //根據(jù)發(fā)送方式不同:
1、完整內(nèi)容方式
提交完整的短信內(nèi)容,如:您的驗(yàn)證碼是:1234。請不要把驗(yàn)證碼泄露給其他人。
2、模板變量方式
模板中的變量內(nèi)容,多個(gè)變量以英文豎線(|)隔開
①單變量示例
模板內(nèi)容:您的驗(yàn)證碼是:【變量】。請不要把驗(yàn)證碼泄露給其他人。
參數(shù)寫法:content=1234
最終短信為:您的驗(yàn)證碼是:1234。請不要把驗(yàn)證碼泄露給其他人。
②多變量示例
模板內(nèi)容:訂單號:【變量1】,聯(lián)系人:【變量2】,手機(jī)號:【變量3】,金額:【變量4】。
參數(shù)寫法:content=20180515006|張三|136xxxxxxxx|100元
最終短信為:訂單號:20180515006,聯(lián)系人:張三,手機(jī)號:136xxxxxxxx,金額:100元。
支持500字以內(nèi)的長短信,長短信按多條計(jì)費(fèi)
bodyArr.put("content", "您的驗(yàn)證碼是:1234。請不要把驗(yàn)證碼泄露給其他人。"); //短信內(nèi)容
bodyArr.put("templateid", "1"); //短信模板ID(使用模板變量方式發(fā)送時(shí)必填)
調(diào)試階段可使用系統(tǒng)默認(rèn)模板ID:1(模板內(nèi)容為:您的驗(yàn)證碼是:【變量】。請不要把驗(yàn)證碼泄露給其他人。)
bodyArr.put("time", "1623643787"); //Unix時(shí)間戳(10位整型數(shù)字,當(dāng)使用動(dòng)態(tài)密碼方式時(shí)為必填)
String queryString = convertToQueryString(bodyArr);
try {
Map<String, Object> response = sendRequest(url, headers, queryString, "POST");
// 打印響應(yīng)
System.out.printf("狀態(tài)碼: %s%n", response.get("status"));
System.out.printf("響應(yīng)內(nèi)容: %s%n", response.get("body"));
} catch (Exception e) {
e.printStackTrace();
}
}
public static Map<String, Object> sendRequest(String url, Map<String, String> headers, String queryString, String method) throws Exception {
HttpRequest.Builder requestBuilder = HttpRequest.newBuilder()
.uri(URI.create(url))
.method(method, queryString.isEmpty() ?
HttpRequest.BodyPublishers.noBody() :
HttpRequest.BodyPublishers.ofString(queryString, StandardCharsets.UTF_8));
headers.forEach(requestBuilder::header);
HttpClient httpClient = HttpClient.newBuilder().build();
HttpResponse<String> response = httpClient.send(
requestBuilder.build(),
HttpResponse.BodyHandlers.ofString(StandardCharsets.UTF_8)
);
Map<String, Object> result = new HashMap<>();
result.put("status", response.statusCode());
result.put("body", response.body());
return result;
}
public static String convertToQueryString(HashMap<String, String> map) {
StringBuilder queryString = new StringBuilder();
for (Map.Entry<String, String> entry : map.entrySet()) {
String encodedKey = URLEncoder.encode(entry.getKey(), StandardCharsets.UTF_8);
String encodedValue = URLEncoder.encode(entry.getValue(), StandardCharsets.UTF_8);
if (queryString.length() > 0) {
queryString.append("&");
}
queryString.append(encodedKey).append("=").append(encodedValue);
}
return queryString.toString();
}
}
國內(nèi)專業(yè)互聯(lián)網(wǎng)團(tuán)隊(duì)
21年行業(yè)經(jīng)驗(yàn)
7x24小時(shí)售后支持
豐富的行業(yè)經(jīng)驗(yàn)
互 億 無 線 官 方 微 信 號
Copyright ? 2004-2025 上海思銳信息技術(shù)有限公司 All rights reserved. 滬ICP備07035915號-15 電信增值業(yè)務(wù)許可證:B2-20160082
服務(wù)熱線:
4008 808 898
服務(wù)熱線(工作時(shí)間):
4008 808 898
業(yè)務(wù)咨詢(非工作時(shí)間):
售后咨詢(非工作時(shí)間):