使用云之讯API借口发送短信(Java,Json版)
来源:互联网 发布:日式风衣知乎 编辑:程序博客网 时间:2024/06/06 08:27
因为给人做的项目需要用到短信通知功能,所以在左挑右选(某度广告)下选择了云之讯的API,计费大约五分钱一条。
因为是按照官方给的API自己手敲的代码,另外刚刚接触Java,所以逻辑上比较乱,代码比较糙,也懒的整理,但是胜在简单易懂,用的包也都不用去找(官方文档的demo还得找包是真的烦,特别是对于初学者来说)
废话少说,直接上代码,注释也都在上面了,稍微看看就能看懂(我把账号的信息用*****代替了,替换上自己的就能用)另外一定得让应用上线!否则会返回404!
package wzh.Http;import sun.misc.BASE64Encoder;import java.io.*;import java.math.BigInteger;import java.net.URL;import java.net.URLConnection;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;import java.text.SimpleDateFormat;import java.util.Date;public class messageTest { public static String EncodeByMd5(String str) throws NoSuchAlgorithmException, UnsupportedEncodingException { //确定计算方法 MessageDigest md5 = MessageDigest.getInstance("MD5"); //获取数据 md5.update(str.getBytes()); //根据API要求获取32位MD5加密 String newstr=new BigInteger(1, md5.digest()).toString(16); newstr=newstr.toUpperCase(); return newstr; } public static String EncodeByBase64(String str) throws UnsupportedEncodingException { BASE64Encoder base64en = new BASE64Encoder(); String newstr = base64en.encode(str.getBytes()); return newstr; } /** * 向指定 URL 发送POST方法的请求 * * @param url 发送请求的 URL * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 * @return 所代表远程资源的响应结果 */ public static String sendPost(String url, String[] param) { //获取时间戳 SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");//设置日期格式 String date = df.format(new Date());// new Date()为获取当前系统时间,也可使用当前时间戳 //两组参数分别为账户ID Account Sid 跟 Auth Token String s = "********************" + "******************" + date; try { s = messageTest.EncodeByMd5(s); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } url = url + s; //设置Authorization信息 ****代表Account Sid s = "**************" + ":" + date; try { s=messageTest.EncodeByBase64(s); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } //设置发送的数据 String sjson = "{" + " \"templateSMS\" : {" + " \"appId\" : \"****************\"," + " \"param\" : "+"\""+param[0]+","+param[1]+"\""+"," + //我的模板短信有两个变量参数 " \"templateId\" : \"190899\"," + " \"to\" : \"15666135849\"" + " }" + "}"; System.out.println(sjson); PrintWriter out = null; BufferedReader in = null; String result = ""; try { URL realUrl = new URL(url); // 打开和URL之间的连接 URLConnection conn = realUrl.openConnection(); // 设置通用的请求属性 conn.setRequestProperty("host", "api.ucpaas.com"); conn.setRequestProperty("accept", "application/json"); conn.setRequestProperty("Content-Type", "application/json;charset=utf-8"); conn.setRequestProperty("Authorization", s); // 发送POST请求必须设置如下两行 conn.setDoOutput(true); conn.setDoInput(true); // 获取URLConnection对象对应的输出流 out = new PrintWriter(conn.getOutputStream()); // 发送请求参数 out.print(sjson); // flush输出流的缓冲 out.flush(); // 定义BufferedReader输入流来读取URL的响应 in = new BufferedReader( new InputStreamReader(conn.getInputStream())); String line; while ((line = in.readLine()) != null) { result += line; } } catch (Exception e) { System.out.println("发送 POST 请求出现异常!" + e); e.printStackTrace(); } //使用finally块来关闭输出流、输入流 finally { try { if (out != null) { out.close(); } if (in != null) { in.close(); } } catch (IOException ex) { ex.printStackTrace(); } } return result; } public static void main(String[] args) { //发送 POST 请求 String[] pa = new String[2]; pa[0]="123456"; pa[1]="工程"; //Account Sid String sr = messageTest.sendPost("https://api.ucpaas.com/2014-06-30/Accounts/**********/Messages/templateSMS?sig=", pa); System.out.println(sr); }}
阅读全文
0 0
- 使用云之讯API借口发送短信(Java,Json版)
- Java版阿里云通信短信发送API接口实例(新)
- java调用发送短信API
- 使用java发送短信
- 阿里云发送短信API
- 如何使用云片API发送短信验证码
- 使用云片API发送短信验证码
- java 调用云通信的api发送短信
- 使用飞信API 发送 短信
- 阿里-短信发送API(SendSms)---JAVA
- Oracle使用Java发送短信
- 使用Java实现短信发送
- JAVA利用短信平台API免费发送短信的程序
- java 调用鹏讯通短信平台api发送短信
- java调用短信api接口发送短信demo实例
- java调用短信api发送短信进行注册
- PHP阿里云短信API发送代码
- 阿里云短信发送API接口调用
- 淘宝招聘邮箱
- 《上瘾》
- Wavelet Transform 提取低频信息的足迹
- 2-1 众数问题 算法
- JDBC 连接数据库的一套规范;jdbc驱动的加载,jdbc连接数据库;
- 使用云之讯API借口发送短信(Java,Json版)
- 独立显示器台式机双屏问题
- Hadoop2.x.x用IDEA直接调用
- 我开通了博客
- 错题2求偶数和
- android购物车简单实现全选+加减器+总价格
- Hbase集群安装与常见问题解决
- Codevs2491玉蟾宫
- 判断字符数组中是否所有的字符都出现一次