Java彩信接口开发经验及具体开发实现
来源:互联网 发布:小米note网络制式 编辑:程序博客网 时间:2024/05/16 01:36
一、彩信发送类MdMmsSend(MdMmsSend.java)
package mmsdemo;import java.io.*;import java.net.*;import java.security.*;import java.util.regex.Matcher;import java.util.regex.Pattern;public class MdMmsSend {/**发送彩信的web service服务器地址*/private static final String SERVER_URL = "http://sdk3.entinfo.cn:8060/webservice.asmx";/**序列号*/private String sn = null;/**序列号加密码经MD5加密后的32位大写字符串*/private String pwd = null;/**构造方法*/public MdMmsSend(String sn,String password) {this.sn = sn;this.pwd = getMD5(sn + password);}/** * 序列号加密码32位MD5加密方法 * @param sourceStr 序列号加密码的字符串 * @return 加密后的字符串 */public String getMD5(String sourceStr) {String resultStr = "";try {byte[] temp = sourceStr.getBytes();MessageDigest md5 = MessageDigest.getInstance("MD5");md5.update(temp);// resultStr = new String(md5.digest());byte[] b = md5.digest();for (int i = 0; i < b.length; i++) {char[] digit = { '0', '1', '2', '3', '4', '5', '6', '7', '8','9', 'A', 'B', 'C', 'D', 'E', 'F' };char[] ob = new char[2];ob[0] = digit[(b[i] >>> 4) & 0X0F];ob[1] = digit[b[i] & 0X0F];resultStr += new String(ob);}return resultStr;} catch (NoSuchAlgorithmException e) {e.printStackTrace();return null;}}/** * 发彩信方法 * @param title 标题,GBK编码 * @param mobile 手机号,多个用英文逗号隔开 * @param content 内容,参照文档编辑内容格式 * @param stime 定时时间,例2013-04-03 12:23:32 * @return 成功返回长字符串,失败返回负数 */public String mdMmsSend(String title,String mobile,String content,String stime) {String result = null;String soapAction = "http://tempuri.org/mdMmsSend";String xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>";xml += "<soap12:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap12=\"http://www.w3.org/2003/05/soap-envelope\">";xml += "<soap12:Body>";xml += "<mdMmsSend xmlns=\"http://tempuri.org/\">";xml += "<sn>" + sn + "</sn>";xml += "<pwd>" + pwd + "</pwd>";xml += "<title>" + title + "</title>";xml += "<mobile>" + mobile + "</mobile>";xml += "<content>" + content + "</content>";xml += "<stime>" + stime + "</stime>";xml += "</mdMmsSend>";xml += "</soap12:Body>";xml += "</soap12:Envelope>";URL url;try {url = new URL(SERVER_URL);URLConnection connection = url.openConnection();HttpURLConnection httpconn = (HttpURLConnection) connection;ByteArrayOutputStream bout = new ByteArrayOutputStream();bout.write(xml.getBytes("GBK"));byte[] b = bout.toByteArray();httpconn.setRequestProperty("Content-Length", String.valueOf(b.length));httpconn.setRequestProperty("Content-Type","text/xml; charset=gb2312");httpconn.setRequestProperty("SOAPAction", soapAction);httpconn.setRequestMethod("POST");httpconn.setDoInput(true);httpconn.setDoOutput(true);OutputStream out = httpconn.getOutputStream();out.write(b);out.close();InputStreamReader isr = new InputStreamReader(httpconn.getInputStream());BufferedReader in = new BufferedReader(isr);String inputLine;while (null != (inputLine = in.readLine())) {Pattern pattern = Pattern.compile("<mdMmsSendResult>(.*)</mdMmsSendResult>");Matcher matcher = pattern.matcher(inputLine);while (matcher.find()) {result = matcher.group(1);}}} catch (Exception e) {e.printStackTrace();}return result;}}
二、Java调用实现
参数名称
说明
是否必须
备注
Sn
软件序列号
是
格式XXX-XXX-XXX-XXXXX
Pwd
密码
是
md5(sn+password) 32位大写密文
限制在30字符以内
Mobile
手机号
是
手机号码多个以英文逗号隔开
Content
内容
是
base64编码(文件名1,文件base64编码串;文件名2,文件base64编码串);实际发送文件小于等于50*1024 字节
stime
定时时间
否
例如:2010-12-29 16:27:03(非定时置空)
函数返回值:String。
content是您发送的彩信的内容:包含图片和声音及文本;
1.文件类型: 文本是.txt 图片是.jpg或者.gif 声音是.mid或者.amr
2.内容格式:
帧数_文件类型.扩展名 + 英文逗号 + 文件的base64编码字符串 + 分号 ;
例如:“1_1.txt,” + 文件base64编码字符串 + “;” + “1_2.jpg,” + 文件base64编码字符串+”;”+”1_3.mid”+文件base64编码字符串
文本是 n_1.txt 图片是 n_2.jpg 或者是 n_2.gif 声音是 n_3.mid ;
N表示当前第几帧,后缀不变,编码均为GB2312。
接口地址:http://sdk3.entinfo.cn:8060/webservice.asmx?op=mdMmsSend
示例1
SN= SDK-SSD-010-00001
PWD=3B5D3C427365F40C1D27682D78BB31E0
title:彩信测试
Mobile:139***404,138***213…………….
Content:测试
Stime: ""
输出结果:
XML格式:
具体函数Java实现:
package mmsdemo;import java.io.*;import com.sun.org.apache.xerces.internal.impl.dv.util.Base64;public class TestMdMmsSend {public static void main(String[] args) {String sn = "SDK-SSD-010-XXXXX";String password = "XXXXXX";String mobile = "18636924700";String pathjpg = "e:\\1.gif";String title = null;byte[] txt = null;try {title = new String("彩信标题".getBytes(), "GBK");txt = "hello彩信内容".getBytes("GBK");} catch (UnsupportedEncodingException e) {e.printStackTrace();}File filejpg = new File(pathjpg);byte[] tempbytejpg = null;try {InputStream fileInputStreamjpg = new FileInputStream(filejpg);tempbytejpg = new byte[fileInputStreamjpg.available()];fileInputStreamjpg.read(tempbytejpg);} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}String jpgbase64String = Base64.encode(tempbytejpg);String txtbase64String = Base64.encode(txt);String content = "1_2.gif," + jpgbase64String + ";" + "2_1.txt," + txtbase64String;String stime="";MdMmsSend mms = new MdMmsSend(sn, password);String result = mms.mdMmsSend(title, mobile, content, stime);System.out.println(result);}}
四、webservice返回集合对照表:
返回值
返回值说明
1
没有数据需要接收
-2
帐号/密码不正确
-3
重复登陆
-4
余额不足
-5
数据格式错误
-6
参数有误
-8
流量控制错误
-11
数据库错误
-12
序列号状态错误
-13
没有提交增值内容
-14
服务器写文件失败
-17
该接口禁止使用该方法
-18
等上一批提交结果返回再继续下一批提交
-15
内容长度长
-22
Ip绑定
五、附加说明:
1.彩信语音SDK地址:
常用接口地址:http://sdk3.entinfo.cn:8060/webservice.asmx
2.其它说明:
(1)开发使用的帐号必须为SDK开头,如SDK-SSD-010-00001,帐号第一次需要调用Register方法注册一次.仅需注册一次即可,信息必须真实
(2)UnRegister与Register配合使用, 连续使用不得超过10次/天;
3. 郑重声明:
(1)禁止相同的内容多个手机号连续一条一条提交. 否则禁用帐号,由此带来损失由客户自行负责.
(2)请客户提供外网服务器IP以便于绑定IP发送,提高账号的安全性!
(3)在程序里最好有配置文件,程序自动判断当某个接口连接超时提交速度变慢时.程序可以自动切换其它的接口以下是推荐的几个服务器,仅接口地址不同而已.方法全部相同;
地址1:http://sdk3.entinfo.cn:8060/webservice.asmx
这些地址都是标准的webservice地址,C#,Java客户可以按照自己熟悉的方式去解析String
或者
地址1:http://sdk3.entinfo.cn:8060/webservice.asmx?wsdl
六、示例Demo源代码下载:
DEMO SDK彩信接口文档 所有下载
- Java彩信接口开发经验及具体开发实现
- PHP彩信接口开发经验及具体开发实现
- ASP彩信接口开发经验及具体开发实现
- C#彩信接口开发经验及具体开发实现
- VC、C++彩信接口开发经验及具体开发实现
- Java短信接口开发经验及具体开发实现
- Java语音SDK接口开发经验及具体开发实现
- asp短信接口开发经验及具体开发实现
- php短信接口开发经验及具体开发实现
- VC短信接口开发经验及具体开发实现
- VB短信接口开发经验及具体开发实现
- DELPHI短信接口开发经验及具体开发实现
- C#短信接口开发经验及具体开发实现
- Android短信接口开发经验及具体开发实现
- Http通用短信接口开发经验及具体开发实现
- PHP语音SDK接口开发经验及具体开发实现
- C#语音SDKSDK接口开发经验及具体开发实现
- 手机短信/彩信接口开发经验介绍
- 跟踪代码的方法
- linux命令:dmesg
- Linux常用命令
- 作为一个新人,怎样学习嵌入式Linux -----韦东山老师
- 网站发布
- Java彩信接口开发经验及具体开发实现
- 从1.5k到18k, 一个程序员的5年成长之路
- CSDN对韦的一段采访,看后心情Hold不住了
- C++中关于命名空间
- 【C/C++】C++中类访问权限控制
- c++ try_catch throw
- 为什么C++中千万不要返回局部对象或变量的引用和指针
- 持续集成(CI)工具------Hudson/Jenkins(Continuous Integration)安装与配置详解
- C++中inline函数