atitit 短信接口规范与短信解决方案.docx
atitit 短信接口规范与短信解决方案.docx
1.5. SmsServiceYyuntongxunImp5
1.1. 国内比较著名的短信提供商
http://www.yuntongxun.com/member/numbermanager
亿美软通
Mob 项目。。
1.2. 短信接口规范
/atiplat_cms/src/com/attilax/sms/SmsService.java
package com.attilax.sms;
public class SmsService {
public Object send(String mobile, String content) {
1.3. 短信sdk构成
一般有sdk源码,这块我们一般不需要。。
以及sdk jar包。。我们需要的这个
还有demo,就是调用sdk的demo,这个我们需要。的。。
1.4. 短信的实现
/atiplat_cms/src/com/attilax/sms/Sms1xinxi.java
package com.attilax.sms;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.ProtocolException;
import java.net.URL;
import java.net.URLDecoder;
import java.net.URLEncoder;
import com.attilax.io.filex;
/*
* com.attilax.sms.Sms1xinxi.send
功能:1xinxi.cn HTTP接口 发送短信
说明:http://sms.1xinxi.cn/asmx/smsservice.aspx?name=登录名&pwd=接口密码&mobile=手机号码&content=内容&sign=签名&stime=发送时间&type=pt&extno=自定义扩展码
*/
public class Sms1xinxi extends SmsService {
private String SmsSign;
public Sms1xinxi()
{
this.pwd = "xxxx";
this.uname="zhida";
this.SmsSign="";//职达巴士
}
public Sms1xinxi(String name, String key_pwd) {
this.pwd = key_pwd;
this.uname=name;
}
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
}
private Sms1xinxi addSmsSign(String string) {
this.SmsSign=string;
return this;
}
private String pwd;
private String uname;
/**
* 0,2016040319043901506198394,0,1,0,提交成功
rr:0,2016040319043901506198394,0,1,0,提交成功
* @param mobile
* @param content
* @return
*/
public String send(String mobile, String content) {
try {
// 发送内容
// String content = "第一信息 JAVA示例测试";
//String sign = "签名";
// 创建StringBuffer对象用来操作字符串
StringBuffer sb = new StringBuffer(
"http://sms.1xinxi.cn/asmx/smsservice.aspx?");
// 向StringBuffer追加用户名
sb.append("name="+uname);
// 向StringBuffer追加密码(登陆网页版,在管理中心--基本资料--接口密码,是28位的)
sb.append("&pwd=" + this.pwd);
// 向StringBuffer追加手机号码
sb.append("&mobile=" + mobile);
// 向StringBuffer追加消息内容转URL标准码
sb.append("&content=" + URLEncoder.encode(content, "UTF-8"));
// 追加发送时间,可为空,为空为及时发送
sb.append("&stime=");
// 加签名
sb.append("&sign=" + URLEncoder.encode(this.SmsSign, "UTF-8"));
// type为固定值pt extno为扩展码,必须为数字 可为空
sb.append("&type=pt&extno=");
// 创建url对象
// String temp = new String(sb.toString().getBytes("GBK"),"UTF-8");
System.out.println("sb:" + sb.toString());
URL url;
String returnStr;
url = new URL(sb.toString());
// 打开url连接
HttpURLConnection connection;
connection = (HttpURLConnection) url.openConnection();
// 设置url请求方式 ‘get’ 或者 ‘post’
connection.setRequestMethod("POST");
// 发送
InputStream is;
is = url.openStream();
// 转换返回值
returnStr = Sms1xinxi.convertStreamToString(is);
// 返回结果为‘0,20140009090990,1,提交成功’ 发送成功 具体见说明文档
System.out.println(returnStr);
// 返回发送结果
return returnStr;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
throw new RuntimeException(e);
}
}
/**
* 转换返回值类型为UTF-8格式.
*
* @param is
* @return
*/
public static String convertStreamToString(InputStream is) {
StringBuilder sb1 = new StringBuilder();
byte[] bytes = new byte[4096];
int size = 0;
try {
while ((size = is.read(bytes)) > 0) {
String str = new String(bytes, 0, size, "UTF-8");
sb1.append(str);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return sb1.toString();
}
}
1.5. SmsServiceYyuntongxunImp
/**
*
*/
package com.attilax.sms;
import com.csmy.my.center.util.RequestUtil;
/**
* impt sms n capt itfs..
* @author attilax
*2016年11月22日 下午4:05:07
*/
public class SmsServiceYyuntongxunImp extends SmsService {
/**
*
*/
private String tmp_id = "1";
//public String code=;
public String min="10";
public Object send(String mobile, String code)
{
return new SDKTestSendTemplateSMS().send(mobile, code, tmp_id, min);
}
}
package com.attilax.sms;
import java.util.HashMap;
import java.util.Set;
import com.attilax.json.AtiJson;
import com.cloopen.rest.sdk.CCPRestSmsSDK;
public class SDKTestSendTemplateSMS {
/**
* @param args
*/
public static void main(String[] args) {
String cp = "18573344543";
String code = "6532";
String templateId = "1";
String min = "10";
send(cp, code, templateId, min);
}
作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 )
汉字名:艾提拉(艾龙), EMAIL:1466519819@qq.com
转载请注明来源: http://www.cnblogs.com/attilax/
Atiend
在电脑上发短信 - attilax的专栏 - 博客频道 - CSDN.NET.html
atitit 短信接口规范与短信解决方案.docx的更多相关文章
- Atitit s2018.2 s2 doc list on home ntpc.docx \Atiitt uke制度体系 法律 法规 规章 条例 国王诏书.docx \Atiitt 手写文字识别 讯飞科大 语音云.docx \Atitit 代码托管与虚拟主机.docx \Atitit 企业文化 每日心灵 鸡汤 值班 发布.docx \Atitit 几大研发体系对比 Stage-Gat
Atitit s2018.2 s2 doc list on home ntpc.docx \Atiitt uke制度体系 法律 法规 规章 条例 国王诏书.docx \Atiitt 手写文字识别 ...
- 在网页程序或Java程序中调用接口实现短信猫收发短信的解决方案
方案特点: 在网页程序或Java程序中调用接口实现短信猫收发短信的解决方案,简化软件开发流程,减少各应用系统相同模块的重复开发工作,提高系统稳定性和可靠性. 基于HTTP协议的开发接口 使用特点在网页 ...
- atitit 短信验证码的源码实现 .docx
atitit 短信验证码的源码实现 .docx 参考 Atitit usrQBM1603短信验证码规范1 主要方法1 源码实现1 参考 Atitit usrQBM1603短信验证码规范 主要方法 L ...
- 基于Socket客户端局域网或广域网内共享同一短信猫收发短信的开发解决方案
可使同一网络(局域网或广域网)内众多客户端,共享一个短信猫设备短信服务器进行短信收发,短信服务器具备对客户端的管理功能. 下面是某市建设银行采用本短信二次开发平台时实施的系统方案图: 在该方案中,考虑 ...
- [工具开发] 一信通 Web 短信发送客户端
一.简介 为了协助公司运营部对几家短信平台进行测试,我根据各自的接口文档编写了几个简单的短信发送客户端: 下面是一信通 Web 短信发送客户端,使用 HTTP GET 方法. 二.效果图 1. 首页 ...
- Android软件开发之发送短信与系统短信库解析
今天我和同学们讨论一下Android平台下如何调用系统方法发送短信.接收短信.系统的短信库相关的问题.进入正题,我们先使用Eclipse工具模拟给自己的模拟器发送一条短信.在Eclipse下打开DDM ...
- Android黑科技,读取用户短信+修改系统短信数据库
安卓系统比起ios系统最大的缺点,相信大家都知道,就是系统安全问题.这篇博客就秀一波“黑科技”. 读取用户短信 Android应用能读取用户手机上的短信,相信已经不是什么新鲜事,比如我们收到的短信验证 ...
- .NET 微信开放平台接口(接收短信、发送短信)
.NET 微信开放平台接口(接收短信.发送短信) 前两天做个项目用到了微信api功能.项目完成后经过整理封装如下微信操作类. 以下功能的实现需要开发者已有微信的公众平台账号,并且开发模式已开启.接口配 ...
- Linux系统中调用短信猫发送短信(笔记)
1, 拷贝底层串口依赖的librxtxSerial.so到JDK安装路径cp librxtxSerial.so /usr/java/{0}/jre/lib/{1} # {0}: JDK的基础目录,例如 ...
随机推荐
- 使用html2canvas实现批量生成条形码
/*前台代码*/ <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Generat ...
- Web系统大规模并发——电商秒杀与抢购 【转】
电商的秒杀和抢购,对我们来说,都不是一个陌生的东西.然而,从技术的角度来说,这对于Web系统是一个巨大的考验.当一个Web系统,在一秒钟内收到数以万计甚至更多请求时,系统的优化和稳定至关重要.这次我们 ...
- 【计算几何】bzoj1043 [HAOI2008]下落的圆盘
n^2枚举圆盘,用两圆圆心的向量的极角+余弦定理求某个圆覆盖了该圆的哪一段区间(用弧度表示),最后求个区间并. 注意--精度--最好再累计区间的时候,把每个区间的长度减去EPS,防止最后覆盖的总区间超 ...
- Java学习笔记 07 接口、继承与多态
一.类的继承 继承的好处 >>使整个程序架构具有一定的弹性,在程序中复用一些已经定义完善的类不仅可以减少软件开发周期,也可以提高软件的可维护性和可扩展性 继承的基本思想 >>基 ...
- Python爬虫入门案例:获取百词斩已学单词列表
百词斩是一款很不错的单词记忆APP,在学习过程中,它会记录你所学的每个单词及你答错的次数,通过此列表可以很方便地找到自己在记忆哪些单词时总是反复出错记不住.我们来用Python来爬取这些信息,同时学习 ...
- Python 学习---------Day1
第一章 问答环节一.人们为何使用Python 软件质量 开发者的效率 程序的可移植性 标准库的支持 组件集成 享受乐趣二.Python的缺点 Python唯一的缺点就是:与C/C++这类编译语言相比, ...
- firefox的plugin-container进程关闭方法
http://kb.mozillazine.org/Plugin-container_and_out-of-process_plugins Disabling crash protecti ...
- [Django] Setting up Django Development Environment in Ubuntu 14.04
1. Python Of course you will need Python. Still Python 2.7 is preferred, however if you would like t ...
- JTA 深度历险 - 原理与实现
转自http://www.ibm.com/developerworks/cn/java/j-lo-jta/ 在 J2EE 应用中,事务是一个不可或缺的组件模型,它保证了用户操作的 ACID(即原子.一 ...
- IO-02. 整数四则运算(10)
本题要求编写程序,计算2个正整数的和.差.积.商并输出.题目保证输入和输出全部在整型范围内. 输入格式: 输入在一行中给出2个正整数A和B. 输出格式: 在4行中按照格式“A 运算符 B = 结果”顺 ...