app项目中有时会用到第三方文档例如短信的发送,接触到创蓝253短信发送总结一下

一、引入文件

1、到253网站下载需要引入的api

地址:https://www.253.com/api-docs.html

其中的文档说明就特别详细,结合项目我进行了一下整改,方便项目中调用(以验证码的发送为例)

package import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.URLDecoder;
import java.text.MessageFormat;
import java.util.HashMap;
import java.util.Map;import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.SimpleHttpConnectionManager;
import org.apache.commons.httpclient.URI;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.params.HttpClientParams;/*** * @ClassName ChuanglanSMS* @Description TODO(创蓝发送短信)* @author* @Date 2017年10月11日 下午4:07:51* @version 1.0.0*/
public class ChuanglanSMS {/*** 发送短信验证码* @param telephone 要发送的手机号* @param code 验证码*/public static Map<String, Object> send(String telephone, String code){Map<String, Object> resultMap = new HashMap<String, Object>();try {if(StringUtil.isNotEmpty(telephone) && StringUtil.isNotEmpty(code)){String resultCode = "";//返回状态//发送内容String sendContent = ChuanglanConfig.SMS_CONTENT;sendContent = MessageFormat.format(sendContent, code);//验证码String returnStr = ChuanglanSMS.batchSend(ChuanglanConfig.SMS_CHINA_URL, ChuanglanConfig.SMS_CHINA_ACCOUNT, ChuanglanConfig.SMS_CHINA_PASSWORD, telephone, sendContent, "1", null);if(returnStr.indexOf("\n")!=-1){//包含换行符resultCode = returnStr.substring(returnStr.indexOf(",")+1,returnStr.indexOf("\n"));}else{resultCode = returnStr.substring(returnStr.indexOf(",")+1);}//返回情况处理if("0".equals(resultCode)){resultMap.put("code", "200");resultMap.put("msg", "发送成功");}else if("107".equals(resultCode)){resultMap.put("code", "300");resultMap.put("msg", "手机号码格式错误");}else{resultMap.put("code", "300");resultMap.put("msg", "发送短信验证码失败");}}else{resultMap.put("code", "300");resultMap.put("msg", "手机号码不能为空");}return resultMap;} catch (Exception e) {e.printStackTrace();resultMap.put("code", "300");resultMap.put("msg", "发送短信验证码失败");return resultMap;}}/*** * @param url 应用地址,类似于http://ip:port/msg/* @param un 账号* @param pw 密码* @param phone 手机号码,多个号码使用","分割* @param msg 短信内容* @param rd 是否需要状态报告,需要1,不需要0* @return 返回值定义参见HTTP协议文档* @throws Exception*/public static String batchSend(String url, String un, String pw, String phone, String msg,String rd, String ex) throws Exception {HttpClient client = new HttpClient(new HttpClientParams(), new SimpleHttpConnectionManager(true));GetMethod method = new GetMethod();try {URI base = new URI(url, false);method.setURI(new URI(base, "send", false));method.setQueryString(new NameValuePair[] { new NameValuePair("un", un),new NameValuePair("pw", pw), new NameValuePair("phone", phone),new NameValuePair("rd", rd), new NameValuePair("msg", msg),new NameValuePair("ex", ex), });int result = client.executeMethod(method);if (result == HttpStatus.SC_OK) {InputStream in = method.getResponseBodyAsStream();ByteArrayOutputStream baos = new ByteArrayOutputStream();byte[] buffer = new byte[1024];int len = 0;while ((len = in.read(buffer)) != -1) {baos.write(buffer, 0, len);}return URLDecoder.decode(baos.toString(), "UTF-8");} else {throw new Exception("HTTP ERROR Status: " + method.getStatusCode() + ":" + method.getStatusText());}} finally {method.releaseConnection();}}/*** * @Description (测试)* @param args*/public static void main(String[] args) {String url = "";// 应用地址String un = "";// 账号String pw = "";// 密码String phone = "";// 手机号码,多个号码使用","分割String msg = "【签名】您好,你的验证码是123456";// 短信内容String rd = "1";// 是否需要状态报告,需要1,不需要0String ex = null;// 扩展码try {//直接按这个调用Map<String, Object> resultMap = ChuanglanSMS.send("15805480231","123456");System.out.println(resultMap.get("code")+":"+resultMap.get("msg"));// TODO 处理返回值,参见HTTP协议文档
//          String returnString = ChuanglanSMS.batchSend(url, un, pw, phone, msg, rd, ex);
//          System.out.println(returnString);} catch (Exception e) {// TODO 处理异常e.printStackTrace();}}
}

2、常量引用类



public class ChuanglanConfig {//应用地址public static String SMS_CHINA_URL = "";//内容public static String SMS_CONTENT = "【签名】您好,您的验证码是{0}";//账号public static String SMS_CHINA_ACCOUNT = "";//密码public static String SMS_CHINA_PASSWORD = "";}

												

253短信发送(国内短信)相关推荐

  1. 如何使用云信通短信发送生日祝福短信(自动发送哦)

    短信平台的模版短信只是单独给一个对象发送, 1,短信即时响应无延时,模版内容可按您的需求增加. 2,内容限制字数70个字以内,发送的时间为 通讯录 的用户生日日期的当天 3,模版短信用于手动便捷输入发 ...

  2. 短信发送--Mms短信群发实现原理

    Mms短信群发实现原理 1.引入       大家也许对单条短信的发送已经非常清楚明白,但对短信的群发可能是一知半解,那短信的群发是怎么样实现的了? 本章重点解析Mms短息群发功能的实现.这里要注意了 ...

  3. php环信发送消息,环信即时通讯 —— 消息、会话

    标签: 1.消息EMMessage 环信支持文字.图片.位置.语音.视频.文件.透传.自定义八种消息构造.消息,即IM交互实体,在SDK中对应的类型是 **EMMessage**,EMMessage可 ...

  4. android 环信发送名片,环信自定义消息类型——名片

    名片分享.jpg 近来的需求需要对环信进行定制化,实现如图所示的名片分享功能. 环信聊天中的每一种消息类型都由一种对应的ChatRow来控制,相当于adapter里的Holder. 自定义GroupC ...

  5. Python3利用Twilio(国际)以及腾讯云服务(国内)免费发送手机短信

    短信服务验证服务已经不是什么新鲜事了,但是免费的手机短信服务却不多见,本次利用Python3.0基于Twilio和腾讯云服务分别来体验一下国际短信和国内短信接口. 首先,注册Twilio: https ...

  6. Python使用腾讯云-短信服务发送手机短信

    原创不易,欢迎关注我的微信公众号:司马弈 获取更多精选内容. 腾讯云短信服务介绍 目前[腾讯云短信]为客户提供[国内短信].[国内语音]和[海外短信]三大服务,腾讯云短信SDK支持以下操作: 国内短信 ...

  7. JAVA + 阿里云 实现单个短信发送 和 批量短信发送(直接拷贝就能使用)

    JAVA + 阿里云 实现单个短信发送 和 批量短信发送 一.阿里云官网相关操作 1.1 秘钥获取 1.2 签名申请 在短信服务中,找到国内消息-签名管理-添加签名, 并等待签名审核通过 1.2 模板 ...

  8. 腾讯云短信发送验证码(超详细)

    在大部分的短信平台,能免费送的短信条数也就是几条,太少了,测试都不够,基本上都是要充钱够买的.我也注册了好几个平台,发现腾讯云免费赠送200条试用短信,就很不错.在我们学生党项目测试来说的话,就已经绰 ...

  9. nodejs 实现手机注册短信发送验证(腾讯云)

    目录 前言 提前准备 nodejs使用 依赖包 代码 效果 尾言 前言 前段时间介绍了如何实现邮箱的验证,相比手机验证,更好一些,可以验证用户的手机号,防止别人恶意注册,本文介绍如何在nodejs实现 ...

  10. Java 对接 阿里云 的短信服务完成短信的发送与查询

    一.开通阿里云短信服务,为开发时需要用到的信息做准备 1.注册或者使用自己的支付宝账号登录阿里云官网 2.搜索并找到短信服务,进行开通(开通是不要钱的,发送短信的时候才需要钱) 3.注册自己的短信签名 ...

最新文章

  1. log4j在eclipse上使用简介
  2. 使用SAP C4C rule editor动态控制UI上某个按钮是否显示
  3. sasl java_javaSASL_SSL帐号密码方式访问kafka
  4. python中continue格式_python自学(3)--for 、 while、 break、continue、字符格式化输出...
  5. 深度学习专项课程精炼图笔记!必备收藏 | 原力计划
  6. 微信公众帐号开发教程第10篇-解析接口中的消息创建时间CreateTime
  7. Javascript第五章删除、克隆、插入、替换方法源码第九课
  8. NeatUpload的安装使用,可传大文件,显示进度条
  9. Web 前端本地化(一)
  10. 第12章实验1:学生成绩管理系统V5.0
  11. 10大主流压力测试工具推荐
  12. 《0Day安全》之堆溢出
  13. MiniGUI 体系结构之二
  14. Linux 【Linux下VI语法】
  15. 工作之余,请IT人员开怀大笑吧
  16. 数字IC后端实现问答(摘选自知识星球本周问答)
  17. Error: Running Homebrew as root is extremely dangerous and no longer supported. As Ho【已解决】
  18. 英伟达 linux 官方驱动 双显卡,反复几次:今天终于弄好双显卡驱动了!
  19. bat:‘锘緻echo’ 不是内部或外部命令,也不是可运行的程序 或批处理文件
  20. 解决Win10下Fliqlo无法显示,显示一个Fi的图标

热门文章

  1. MIT 6.824 lab3 KVRaft
  2. 分享一个jQuery的自动客户端本地保存插件Sisyphus.js - 帮助你自动保存用户输入内容
  3. Chrome更新89版本后,sessionStorage丢失a标签跳转丢失sessionStorage
  4. 我的练习项目: 模拟淘宝搜索商品、添加商品到购物车功能、修改商品信息功能
  5. 常用的curl命令及参数详解
  6. 微服务架构开发实战:什么是微服务的熔断机制和熔断的意义
  7. 你不知道的几个牛逼网站,欢迎收藏
  8. python爬取51job关于python的招聘信息
  9. 《数字经济全景白皮书》中国商业银行普惠金融可持续发展能力评价2022
  10. 什么是数据安全,为什么需要数据安全,怎么才能实现数据安全?