java使用聚合數據短信API發送短信

一、準備工作

  • 聚合數據 首先在聚合數據官網中進行註冊

  • 然後申請短信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));
    }
}
  • 運行代碼,看到控制檯打印輸出這個,證明發送驗證碼成功呢

在這裏插入圖片描述

  • 手機上會收到短信驗證碼

在這裏插入圖片描述

  • 完成
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章