atitit 短信接口规范与短信解决方案.docx

atitit 短信接口规范与短信解决方案.docx

大家好,又见面了,我是全栈君。

atitit 短信接口规范与短信解决方案.docx

 

1.1. 国内比较著名的短信提供商1

1.2. 短信接口规范1

1.3. 短信sdk构成1

1.4. 短信的实现1

1.5. SmsServiceYyuntongxunImp5

 

1.1. 国内比较著名的短信提供商

 

http://www.yuntongxun.com/member/numbermanager

亿美软通

Mob 项目。。

http://sms.1xinxi.cn/

 

 

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,就是调用sdkdemo,这个我们需要。的。。

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);

 

// 返回结果为‘020140009090990,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

 *20161122日 下午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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/108768.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • php替换中文字符串,php如何替换字符串里的字符「建议收藏」

    php替换中文字符串,php如何替换字符串里的字符「建议收藏」php替换字符串里字符的方法:1、通过substr_replace函数把字符串的一部分替换为另一个字符串;2、使用str_replace函数将一个字符串替换字符串中的另一些字符。PHP字符串替换用于从字符串中替换指定字符串。相关函数如下:substr_replace():把字符串的一部分替换为另一个字符串str_replace():使用一个字符串替换字符串中的另一些字符substr_replac…

    2022年5月10日
    34
  • DDR中的ODT功能详解及波形对比[通俗易懂]

    DDR中的ODT功能详解及波形对比[通俗易懂]ODT(ondietermination)即为片内端接,就是将端接电阻放在了芯片内部,这个功能只有在DDR2以上的数据信号才有。而有了ODT功能,原本需要在PCB板上加串联电阻的数据信号就不需要再额外添加端接了,只需要芯片内部打开ODT的端接功能,且这个端接可调。以下就是ODT的端接情况,如图所示:当数据读操作的时候,主控芯片(CPU)读取内存颗粒的数据,此时主控为接收端,可根据需要选择是否打开ODT功能;当数据写操作的时候,主控芯片(CPU)将数据写入内存颗粒,此时颗粒为接收端,也可以根据需要

    2022年9月8日
    0
  • 嵌入式系统 ttylinux 9.1 发布「建议收藏」

    嵌入式系统 ttylinux 9.1 发布「建议收藏」ttylinux是一个只需要8M磁盘空间的小型GNU/Linux发行版。可适合在以太网、调制解调器、ISDN等设备上运行,最低要求是486SX以及12M内存该版本主要是修正了一些bug。下载地址:http://www.minimalinux.org/ttylinux/download.html转载于:https://www.cnblogs.com/top5/…

    2022年8月12日
    3
  • 三维空间坐标系变换-旋转矩阵「建议收藏」

    三维空间坐标系变换-旋转矩阵「建议收藏」    空间中三维坐标变换一般由三种方式实现,第一种是旋转矩阵和旋转向量;第二种是欧拉角;第三种是四元数。这里先介绍旋转矩阵(旋转向量)与欧拉角实现三维空间坐标变换的方法以及两者之间的关系。    这里以常见的世界坐标系与相机坐标系间的变换为例。一、首先介绍从相机坐标系转换到世界坐标系,也就是比较通用的body到世界坐标系间的转换。    那么旋转的欧拉角按从世界坐标…

    2022年10月25日
    0
  • 将字符串指针赋值给数组[通俗易懂]

    比如char*p=”sdflkjasljfsjlsdfsa”;charp1[200];将p赋给p1(1)strcpy(p1,p);(2)char*src=”helloworld”;chardes[100]={0};memcpy(des,src,strlen(src)+1);//void*memcpy(void*str1,const…

    2022年4月12日
    95
  • 主流量化交易的几种策略模型

    主流量化交易的几种策略模型量化策略可以简单分为三类,分别是Alpha策略、CTA策略以及高频交易策略1.Alpha策略Alpha策略包含不同类别:按照研究内容来分,可分为基本面Alpha(或者叫财务Alpha)和量价Alpha。业内普遍不会将这两种Alpha完全隔离开。但是不同团队会按照其能力、擅长方向以及信仰,在做因子上有所偏向。有的团队喜欢用数据挖掘的方式做量价因子,而有的团队喜欢从基本面财务逻辑的角度出发,精细地筛选财务因子。。按照是否对冲可以分为两类。全对冲的叫做Alpha策略,不对冲的在市面上常被称作指

    2022年6月26日
    38

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号