【云片网】发送短信验证代码事例
来源:互联网 发布:数控编程cnc 编辑:程序博客网 时间:2024/06/16 11:12
要实现发送短信的功能必须有短信发送平台,本文是调用云片网短信平台的代码事例,首先在云片网上注册账号,该网站会给每一个用户分配一个apiKey用于唯一标示一个账号,然后给改账号充值办理短信发送业务。
一:必须的jia包
1.httpclient-4.3.5.jar
2.httpcore-4.3.2.jar
3.commons-logging-1.1.1.jar :httpclient jar包所需要的日志jar。
二:代码事例
package com.hyf.sendphone;import org.apache.http.HttpEntity;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.io.IOException;import java.net.URISyntaxException;import java.net.URLEncoder;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;/*** 短信http接口的java代码调用示例* 基于Apache HttpClient 4.3** @author songchao* @since 2015-04-03*/public class JavaSmsApi {//查账户信息的http地址private static String URI_GET_USER_INFO = "http://yunpian.com/v1/user/get.json";//智能匹配模版发送接口的http地址private static String URI_SEND_SMS = "http://yunpian.com/v1/sms/send.json";//模板发送接口的http地址private static String URI_TPL_SEND_SMS = "http://yunpian.com/v1/sms/tpl_send.json";//发送语音验证码接口的http地址private static String URI_SEND_VOICE = "http://yunpian.com/v1/voice/send.json";//编码格式。发送编码格式统一用UTF-8private static String ENCODING = "UTF-8";public static void main(String[] args) throws IOException, URISyntaxException { //修改为您的apikey.apikey可在官网(http://www.yuanpian.com)登录后用户中心首页看到 String apikey = "**********************"; //修改为您要发送的手机号 String mobile = "***********"; /**************** 查账户信息调用示例 *****************/ System.out.println(JavaSmsApi.getUserInfo(apikey)); /**************** 使用智能匹配模版接口发短信(推荐) *****************/ //设置您要发送的内容(内容必须和某个模板匹配。以下例子匹配的是系统提供的1号模板) String text = "【云片网】您的验证码是1234"; //发短信调用示例 System.out.println(JavaSmsApi.sendSms(apikey, text, mobile)); /**************** 使用指定模板接口发短信(不推荐,建议使用智能匹配模版接口) *****************/ //设置模板ID,如使用1号模板:【#company#】您的验证码是#code# long tpl_id = 1; //设置对应的模板变量值 //如果变量名或者变量值中带有#&=%中的任意一个特殊符号,需要先分别进行urlencode编码 //如code值是#1234#,需作如下编码转换 String codeValue = URLEncoder.encode("#1234#", ENCODING); String tpl_value = "#code#=" + codeValue + "&#company#=云片网"; //模板发送的调用示例 System.out.println(JavaSmsApi.tplSendSms(apikey, tpl_id, tpl_value, mobile)); /**************** 使用接口发语音验证码 *****************/ String code = "1234"; System.out.println(JavaSmsApi.sendVoice(apikey, mobile ,code));}/*** 取账户信息** @return json格式字符串* @throws java.io.IOException*/public static String getUserInfo(String apikey) throws IOException, URISyntaxException { Map<String, String> params = new HashMap<String, String>(); params.put("apikey", apikey); return post(URI_GET_USER_INFO, params);}/*** 智能匹配模版接口发短信** @param apikey apikey* @param text 短信内容* @param mobile 接受的手机号* @return json格式字符串* @throws IOException*/public static String sendSms(String apikey, String text, String mobile) throws IOException { Map<String, String> params = new HashMap<String, String>(); params.put("apikey", apikey); params.put("text", text); params.put("mobile", mobile); return post(URI_SEND_SMS, params);}/*** 通过模板发送短信(不推荐)** @param apikey apikey* @param tpl_id 模板id* @param tpl_value 模板变量值* @param mobile 接受的手机号* @return json格式字符串* @throws IOException*/public static String tplSendSms(String apikey, long tpl_id, String tpl_value, String mobile) throws IOException { Map<String, String> params = new HashMap<String, String>(); params.put("apikey", apikey); params.put("tpl_id", String.valueOf(tpl_id)); params.put("tpl_value", tpl_value); params.put("mobile", mobile); return post(URI_TPL_SEND_SMS, params);}/*** 通过接口发送语音验证码* @param apikey apikey* @param mobile 接收的手机号* @param code 验证码* @return*/public static String sendVoice(String apikey, String mobile, String code) { Map<String, String> params = new HashMap<String, String>(); params.put("apikey", apikey); params.put("mobile", mobile); params.put("code", code); return post(URI_SEND_VOICE, params);}/*** 基于HttpClient 4.3的通用POST方法** @param url 提交的URL* @param paramsMap 提交<参数,值>Map* @return 提交响应*/public static String post(String url, Map<String, String> paramsMap) { CloseableHttpClient client = HttpClients.createDefault(); String responseText = ""; CloseableHttpResponse response = null; try { HttpPost method = new HttpPost(url); if (paramsMap != null) { List<NameValuePair> paramList = new ArrayList<NameValuePair>(); for (Map.Entry<String, String> param : paramsMap.entrySet()) { NameValuePair pair = new BasicNameValuePair(param.getKey(), param.getValue()); paramList.add(pair); } method.setEntity(new UrlEncodedFormEntity(paramList, ENCODING)); } response = client.execute(method); HttpEntity entity = response.getEntity(); if (entity != null) { responseText = EntityUtils.toString(entity); } } catch (Exception e) { e.printStackTrace(); } finally { try { response.close(); } catch (Exception e) { e.printStackTrace(); } } return responseText; }}
0 0
- 【云片网】发送短信验证代码事例
- PDU发送短信 事例
- 发送短信验证--腾讯发送短信验证
- 云片网--发送短信验证码服务端接口
- 发送短信验证码
- 短信发送及其验证
- java 发送短信验证
- 发送短信验证码
- 发送短信验证码
- 短信验证码发送
- 发送短信验证码
- 发送短信验证码
- Android发送接收短信的代码示例(本人验证OK)
- 手机发送短信验证码的部分代码
- php实现阿里云API短信验证发送代码
- 手机发送短信验证码的部分代码
- [小代码]发送短信
- Android短信发送代码
- GO语言教程(二)编辑器IDE之JetBrains篇(PyCharm+go插件plugin)
- 怎么查看so库文件中的函数
- SLAM: Inverse Depth Parametrization for Monocular SALM
- 70%的优秀员工都是被平庸的中层管理者折磨走的!
- datagridview合并表头
- 【云片网】发送短信验证代码事例
- 【SSH】--支付,无处不在
- java枚举表示常量
- java中System.getProperties默认都存有哪些信息
- 图像拼接(不投影到柱面)(渐入渐出融合) matlab程序
- 【iOS】Swift ?和 !(详解)
- 集合框架
- 求二进制数中1的个数
- 如何在公司做人做事