一、準備工作
-
聚合數據 首先在聚合數據官網中進行註冊
-
然後申請短信API服務,初次使用贈送5次
- 申請成功之後,AppKey特別重要,不要讓別人知道,然後再點擊模板
- 點擊模板,填寫模板內容,要申請通過,不通過拿不到模板ID。最主要是要得到模板ID,這是要發送到你手機上的內容
- 這些弄好後可以寫代碼測試呢
二、短信API接口需要了解的地方
- 查看聚合數據中短信API接口,需要接口地址和請求參數(如果你要用請求示例的地址欄進行請求也是可以的)
- 請求返回的數據
三、寫代碼實現
1.Demo中使用的是httpclient包
- HttpClient 是 Apache Jakarta Common 下的子項目,可以用來提供高效的、最新的、功能豐富的支持 HTTP 協議的客戶端編程工具包,並且它支持 HTTP 協議最新的版本和建議。本文首先介紹 HTTPClient,然後根據作者實際工作經驗給出了一些常見問題的解決方法。HTTP 協議可能是現在 Internet 上使用得最多、最重要的協議了,越來越多的 Java 應用程序需要直接通過 HTTP 協議來訪問網絡資源。雖然在 JDK 的 java.net 包中已經提供了訪問 HTTP 協議的基本功能,但是對於大部分應用程序來說,JDK 庫本身提供的功能還不夠豐富和靈活。HttpClient 是 Apache Jakarta Common 下的子項目,用來提供高效的、最新的、功能豐富的支持 HTTP 協議的客戶端編程工具包,並且它支持 HTTP 協議最新的版本和建議。
2.創建項目java發送短信Demo鏈接
- 創建一個項目
- 在pom文件引入httpclient依賴
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.8</version>
</dependency>
- 項目圖,創建一個MyHttpClientDemo文件
- MyHttpClientDemo代碼:
package com.ming;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class MyHttpClientDemo {
public static String doPost(String url, Map<String, String> params) {
//創建一個httpclient對象
CloseableHttpClient httpClient = HttpClients.createDefault();
//返回參數
String result = "";
//構建響應對象
CloseableHttpResponse response = null;
try {
//構建post請求
HttpPost post = new HttpPost(url);
if (params != null){
//構建參數
List<NameValuePair> paramList = new ArrayList<>();
for (Map.Entry<String,String> param: params.entrySet()){
paramList.add(new BasicNameValuePair(param.getKey(),param.getValue()));
}
//模擬表單對象
UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(paramList, Charset.defaultCharset());
post.setEntity(formEntity);
}
response = httpClient.execute(post);
result = EntityUtils.toString(response.getEntity(), Charset.defaultCharset());
} catch (Exception e) {
e.printStackTrace();
} finally {
close(httpClient,response);
}
return result;
}
private static void close(CloseableHttpClient httpClient, CloseableHttpResponse response){
try {
if (response != null){
response.close();
}
if (httpClient != null){
httpClient.close();
}
} catch (Exception e){
e.printStackTrace();
}
}
public static void main(String[] args) {
Map<String, String> params = new HashMap<String, String>();
params.put("mobile","自己的手機號碼"); //填寫自己的手機號碼
params.put("tpl_id","211907"); //提寫自己的短信模板ID
params.put("tpl_value","%23code%23%3d5643"); //5643是驗證碼,可以自己隨便填寫
params.put("key","自己的AppKey"); //這裏寫自己的AppKey
params.put("dtype","json"); //返回的是json格式的數據
System.out.println(MyHttpClientDemo.doPost("http://v.juhe.cn/sms/send",params));
}
}
- 運行代碼,看到控制檯打印輸出這個,證明發送驗證碼成功呢
- 手機上會收到短信驗證碼
- 完成