本文為您提供了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/vm/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(用戶中心【云語音】-【語音通知】-【產(chǎn)品總覽】查看)
bodyArr.put("password", "xxxxxxxxx"); //1、APIKEY(用戶中心【云語音】-【語音通知】-【產(chǎn)品總覽】查看)
2、動態(tài)密碼(生成動態(tài)密碼方式請看該文檔末尾的說明)
bodyArr.put("mobile", "136xxxxxxxx"); //支持中國內(nèi)地手機號碼及固話號碼。
手機號:11位,示例:139****0000。
固話號碼:{區(qū)號}{號碼},示例:02151****29。
接收手機號碼,只能提交一個號碼
bodyArr.put("content", "您的訂單號是:9633。已由順風快遞發(fā)出,請注意查收。"); //根據(jù)發(fā)送方式不同:
1、完整內(nèi)容方式
提交完整的短信內(nèi)容,如:您的訂單號是:9633。已由順風快遞發(fā)出,請注意查收。
2、模板變量方式
模板中的變量內(nèi)容,多個變量以英文豎線(|)隔開
①單變量示例
模板內(nèi)容:您的訂單已發(fā)出,訂單號:【變量】,請注意查收。
參數(shù)寫法:content=1234
最終短信為:您的訂單已發(fā)出,訂單號:1234,請注意查收。
②多變量示例
模板內(nèi)容:訂單號:【變量1】,聯(lián)系人:【變量2】,手機號:【變量3】,金額:【變量4】。
參數(shù)寫法:content=20180515006|張三|136xxxxxxxx|100元
最終短信為:訂單號:20180515006,聯(lián)系人:張三,手機號:136xxxxxxxx,金額:100元。
bodyArr.put("templateid", 1361); //語音模板ID(使用模板變量方式發(fā)送時必填)
調(diào)試階段可使用系統(tǒng)默認模板ID:1361(模板內(nèi)容為:您的訂單號是:【變量】。已由【變量】發(fā)出,請注意查收。)
bodyArr.put("time", "1623643787"); //Unix時間戳(10位整型數(shù)字,當使用動態(tài)密碼方式時為必填)
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)團隊
21年行業(yè)經(jīng)驗
7x24小時售后支持
豐富的行業(yè)經(jīng)驗
Copyright ? 2004-2025 上海思銳信息技術(shù)有限公司 All rights reserved. 滬ICP備07035915號-15 電信增值業(yè)務(wù)許可證:B2-20160082
服務(wù)熱線:
4008 808 898
服務(wù)熱線(工作時間):
4008 808 898
業(yè)務(wù)咨詢(非工作時間):
售后咨詢(非工作時間):