c#——完美实现短信验证
短信验证,诸如大型的网站注册验证,都避免不了手机短信的验证工作。且越来越多的企业开始利用短信平台开展各种短信增值业务。下面就和大家分享一下我的实践过程。
短信验证,是需要第三方的短信接口平台支撑的,当然是要付费的,要不咱怎么可能平白无故就是手机联系起来还发短信呢?对吧!我是通过申请的测试账号来实践的。
我是使用Http协议,c#开发语言,UTF-8编码格式实践的。
废话不多,先看代码:我再解释:
protected void Button3_Click(object sender, EventArgs e){//定义参数:参数格式为:key=value(userID=1&password=123456)结构。string param = "action=send&userid=5581&account=ZK03&password=zk123456&content=" + TextBox2.Text + "&mobile=" + TextBox1.Text;if (CheckBox1.Checked)//是否定时发送{param = param + TextBox4.Text; //格式 yyyymmddhhnnss}byte[] bs = Encoding.UTF8.GetBytes(param);//HttpWebRequest post提交方式通过在页面内容中填写参数的方法来完成数据的提交:参数格式为:key=value(userID=1&password=123456)结构。HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("http://xtx.telhk.cn:8080/sms.aspx");req.Method = "POST";req.ContentType = "application/x-www-form-urlencoded";req.ContentLength = bs.Length;//HttpWebRequest.getRequestStream() :返回用于发送HttpWebRequest数据的流。返回stream实例后,可以通过使用stream。write方法发送带有httpwebrequest的数据。//注意:检索流之前必须先设置contentlength属性的值using (Stream reqStream = req.GetRequestStream()){//Stream.Write(Byte[] buffer,Int32 offset,Int32 count):此方法是指从offset处开始将count个字节从buffer复制到当前流//向当前流中写入字节序列,并将此流中的当前位置提升写入的字节数:reqStream.Write(bs, 0, bs.Length);}using (WebResponse wr = req.GetResponse()){//这里对接收到的页面内容进行处理StreamReader sr = new StreamReader(wr.GetResponseStream(), System.Text.Encoding.Default);string xml = sr.ReadToEnd().Trim();byte[] buffer = Encoding.GetEncoding("GBK").GetBytes(xml);TextBox3.Text = Encoding.UTF8.GetString(buffer); }}
【解释】
1·请求地址:
请求地址是客户接口程序调用时请求的url地址,采用的是httppost 接口,地址是
客户端地址+sms.aspx例如:http://xtx.telhk.cn:8080/sms.aspx;
入口地址一般不会发生变化,当发生变化的时候,会通知接口用户
http://xtx.telhk.cn:8080/sms.aspx?action=send&userid=5581&account=ZK03&password=zk123456&mobile=13833611187&content=内容&sendTime=&taskName=本次任务描述&checkcontent=1&mobilenumber=10&countnumber=12&telephonenumber=2
2·请求地址带的参数说明:
参数名称 |
含义 |
说明 |
userid |
企业id |
企业ID |
account |
发送用户帐号 |
用户帐号,由系统管理员 |
password |
发送帐号密码 |
用户账号对应的密码 |
mobile |
全部被叫号码 |
发信发送的目的号码.多个号码之间用半角逗号隔开 |
content |
发送内容 |
短信的内容 |
sendTime |
定时发送时间 |
为空表示立即发送,定时发送格式2010-10-24 09:08:10 |
action |
发送任务命令 |
设置为固定的:send |
checkcontent |
是否检查内容包含非法 关键字 |
当设置为1时表示需要检查,默认0为不检查 |
taskName |
任务名称 |
本次任务 描述100个字以内 可以为空 |
countnumber |
号码总数量 |
本次提交的号码总数量 |
mobilenumber |
手机号码数量 |
本次提交的手机号码数量 |
telephonenumber |
小灵通或座机号码数 |
本次提交的小灵通或座机号码数数量 |
3·返回值说明: 在接收到客户端发送的http请求后,返回以xml的方式返回处理结果。格式为:
<?xml version="1.0" encoding="utf-8" ?>
<returnsms>
<returnstatus>status</returnstatus> ---------- 返回状态值:成功返回Success 失败返回:Faild
<message>message</message> ---------- 返回信息:见下表
<remainpoint> remainpoint</remainpoint> ---------- 返回余额
<taskID>taskID</taskID> ----------- 返回本次任务的序列ID
<successCounts>successCounts</successCounts> --成功短信数:当成功后返回提交成功短信数
</returnsms>
返回信息提示 |
说明 |
ok |
提交成功 |
用户名或密码不能为空 |
提交的用户名或密码为空 + |
发送内容包含sql注入字符 |
包含sql注入字符 |
用户名或密码错误 |
表示用户名或密码错误 |
短信号码不能为空 |
提交的被叫号码为空 |
短信内容不能为空 |
发送内容为空 |
包含非法字符: |
表示检查到不允许发送的非法字符 |
对不起,您当前要发送的量大于您当前余额 |
当支付方式为预付费是,检查到账户余额不足 |
其他错误 |
其他数据库操作方面的错误 |
最后看一下效果图吧:
c#——完美实现短信验证相关推荐
- Android短信验证
短信验证借助了mob.com(移动开发者服务平台),该服务平台提供了以下功能模块(需要自己注册账号) ShareSDK:让App快速拥有强大的分享功能,提供全面的社会化数据统计. 短信验证码:可轻松实 ...
- php中短信验证大致流程,实现php手机短信验证功能的基本思路
现在很多网站为了避免用户烂注册,都在注册环节添加有手机短信验证功能,用户注册时需要短信验证码才可以,那么这种手机短信验证功能是如何实现的呢?其基本思路是什么呢?下面乐信小编就来为大家介绍下: 实现手机 ...
- 简单的短信验证功能的实现
相信有很多朋友在做三方登陆的时候会加入短信验证的功能,最近刚好被分配安排实现这一需求,本人新手一枚,特地去网上搜了资料,目前用的比较多的大汉.云通讯还有MOB的smssdk,对比之下,最终选择了完全免 ...
- 阿里云短信验证解决方案(java版)(redis存储)
阿里云短信验证解决方案(java版)(redis存储) 参考文章: (1)阿里云短信验证解决方案(java版)(redis存储) (2)https://www.cnblogs.com/Amos-Tur ...
- 收下这个“短信验证”的最佳实践项目!
短信验证这样的功能是不是进本每个应用都会用到?那么你有积累下相关的开发模块或服务了吗?不管有没有,今天TJ给大家推荐一个现成的短信验证功能的开源项目! 一个合规.安全.可靠的短信验证码项目模块应该具备 ...
- 七丶青龙nvjdc部署教程+短信验证登录对接傻妞
青龙nvjdc部署教程+短信验证登录对接傻妞Nolanjdc 没有服务器的先自行购买,这里推荐腾讯云2H4G8M首年70–点击购买 青龙面板安装教程 傻妞机器人安装教程 XDD安装教程 QQ交流:10 ...
- java实现手机短信验证全过程
点个赞,看一看,好习惯!本文 GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了 3 个月总结的一线大厂 Java 面试总结,本 ...
- android-短信验证功能,Android实现获取短信验证码的功能以及自定义GUI短信验证详解...
<Android实现获取短信验证码的功能以及自定义GUI短信验证详解>由会员分享,可在线阅读,更多相关<Android实现获取短信验证码的功能以及自定义GUI短信验证详解(8页珍藏版 ...
- 中国网建java发送短信_短信验证登陆-中国网建提供的SMS短信平台
一.JAVA发送手机短信常见的有三种方式(如下所列): 使用webservice接口发送手机短信,这个可以使用sina提供的webservice进行发送,但是需要进行注册 使用短信mao的方式进行短信 ...
最新文章
- php union all,Union与Union All的区别
- 跟小静读CLR via C#(05)- 访问限定、数据成员
- 阿里再推社交“Real如我”,是电商巨头的流量焦虑
- nginx php7 fastcgi,Windows下搭建PHP7+FastCGI+Nginx环境
- 使用javasript 遍历页面CheckBox
- java获取500错误_HTTP 500错误
- uva-465(overflow)
- JAVA核心知识总结
- 系统动力学模型_蓝谷学术动态|典型海洋生态系统动力学模型构建、应用及发展入选2020年经典中国国际出版工程...
- this 的4种绑定机制
- 正则表达式 中括号与加号
- 记一次mysql_query(): xxx is not a valid MySQL-Link resource
- 域名与DNS(域名解析服务器)
- 为什么我不再推荐使用MVC框架?
- 企业 IT 治理沙龙·北京站:业务优先?治理优先?您的企业是哪种上云姿势?...
- python web框架django面试题收藏
- 解决在iOS复制失败问题 iOS/Android通用
- 读书笔记 - -《Python网络编程》重点
- 公司测试部门来了个00后卷王之王,老油条感叹真干不过,但是...
- 计算机导么是进制,计算机基础 进制简介和转换
热门文章
- Endgame P.O.O
- AVL树的理解及自写AVL树
- 三维目标检测论文阅读:PointPillars: Fast Encoders for Object Detection from Point Clouds
- 微型计算机的体积虽小 但是性价比比较高,[问答题,简答题] 简述公共管理与企业管理的区别。...
- 服务器双因素认证微软Ad,12-双因素认证(MIX)配置举例
- 一个连接态DRX下的paging接收专利
- 2021-04-01裁判文书网数据python爬虫更新下载
- 第29届奥运会中国代表团夺金榜
- 锐捷Wlan——AC热备实验(DHCP在核心交换机)
- 基于全卷积神经网络的前列腺磁共振图像分割