C#如何编写短信接口,以及接口的调用,包括C#.net访问web,并处理返回值的简例。
在系统的开发中我们经常会用到接口,下面给大家介绍一种短信接口的编写与调用。
我们常调用接口来完成一些信息的通知或者发送验证码,那么这些操作是如何完成的呢?来看一下详细的介绍吧!
首先呢,我们需要有一个短信的接口地址这个需要从短信接口提供商哪里购买,附带着接口文档,里面有接口地址与详细的函数,参数等说明。
然后我们就可以编写接口啦!
一、先定义一个静态的方法,返回值为字符串类型,给两个参数(短信内容,发送的手机号)。
1.定义一个存放密码的变量“pwd”,使用MD5进行加密一下。
2.定义一个存放账号的变量“regcode”,给变量赋值。
3.定义一个临时存放内容的变量“temp”,转换一下短信内容的编码格式,防止乱码,最后在给内容_mesg赋值。
4.定义一个存放路径的变量“url”,将接口路径等变量拼接起来,按照接口文档的格式为准。
5.请求HTTP协议,发送请求,获取结果。
private static string ChannelA(string _mesg, string _phone)
{
string pwd = FormsAuthentication.HashPasswordForStoringInConfigFile("指定密码", "MD5").ToLower();
string regcode = "短信账号";
_mesg = "【***】" + _mesg;//可自行给内容添加前缀
string temp = string.Empty; //创建变量 存放短信内容
byte[] encodedBytes = Encoding.GetEncoding("gbk").GetBytes(_mesg);
foreach (byte b in encodedBytes)
{
temp += "%" + b.ToString("X");
}
_mesg = temp;
string url = string.Empty;
url = "http://********=" + regcode + "&pwd=" + pwd + "&phone=" + _phone + "&CONTENT=" + _mesg + "&extnum=&level=1&schtime=null&reportflag=1&url
=&smstype=0&key=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
HttpWebRequest webrequest = (HttpWebRequest)HttpWebRequest.Create(url);//创建一个请求示例
HttpWebResponse webreponse = (HttpWebResponse)webrequest.GetResponse();//获取响应,即发送请求
Stream stream = webreponse.GetResponseStream();//获得流
try
{
byte[] rsByte = new Byte[webreponse.ContentLength];//字节数组,存放流里面的数据
stream.Read(rsByte, 0, (int)webreponse.ContentLength);//读取数据流的长度
string str = System.Text.Encoding.UTF8.GetString(rsByte, 0, rsByte.Length).ToString();//结果
return "SUCCESS";//返回结果
}
catch (Exception ex)
{
return "ERR|" + ex.Message;
}
}
二、短信发送之前的一个判断,有需要的朋友可以参考一下。
1.同样两个参数,短信内容与需要发送的手机号。
2.获取一小时之内的时间。
3.连接你的数据库。
4.获取到你这一个小时内发送短信的总条数,判断条数是否在你设定的数量之内,给个返回值 短信提示。
5.取IP,与你这一个小时内给这个IP发送短信的总条数,判断条数是否在你设定的数量之内,给个返回值 短信提示。
6.获取你这一个小时内给同一个手机号发送短信的总条数,判断条数是否在你设定的数量之内,给个返回值 短信提示。
7.定义变量“RsltA”,调用接口方法。
8.返回“RsltA”。
public static string SendMsg(string _mesg, string _phone)
{
DateTime DtLmtAll = DateTime.Now.AddHours(-1);
dbebmEntities DB = new dbebmEntities();
int Lmt = DB.Call_ToothMessage.Where(a => a.SendTime > DtLmtAll).Count(); //一小时内发短信的总条数
if (Lmt > 1000 && Lmt < 1005)
{
string Rslt1 =ChannelA("本小时内已发够1000条短信,请查询发送详情", "手机号");
return "短信通道暂繁忙,请稍候再试";
}
if (Lmt > 1005)
{
return "短信通道暂繁忙,请稍候再试";
}
DateTime DtLmtIP = DateTime.Now.AddHours(-1);
string IPAddress = System.Web.HttpContext.Current.Request.UserHostAddress;
if (DB.Call_ToothMessage.Where(a => a.IPAddress == IPAddress && a.SendTime > DtLmtIP).Count() >= 50)
return "同一IP地址每小时最多接收50条短信哦~"; DateTime DtLmtPhone = DateTime.Now.AddDays(-1);
if (DB.Call_ToothMessage.Where(a => a.PhoneNum == _phone && a.SendTime > DtLmtPhone).Count() >= 20)
return "同一手机号每天最多接收20条短信哦~";
string RsltA = ChannelA(_mesg, _phone);
Call_ToothMessage Msg = new Call_ToothMessage();
Msg.TothContent = _mesg;
Msg.SendTime = DateTime.Now;
Msg.CreateTime = DateTime.Now;
Msg.PhoneNum = _phone;
Msg.IPAddress = IPAddress;
Msg.CfmType = 0;
DB.Call_ToothMessage.Add(Msg);
DB.SaveChanges();
return RsltA;
}
最后如果你需要第二个方法判断发送条数,就在需要接口的地方调用第二个方法的名称就好啦,如果不需要判断那么直接调接口的方法吧!
详细步奏已经讲解完了,你看懂了吗?
欢迎提问哦!
C#如何编写短信接口,以及接口的调用,包括C#.net访问web,并处理返回值的简例。的更多相关文章
- Java版阿里云通信短信发送API接口实例(新)
阿里云通信(原名阿里大于)的短信服务(Short Message Service)是阿里云为用户提供的一种通信服务的能力,支持快速发送短信验证码.短信通知等. 完美支撑双11期间2亿用户,发送6亿短信 ...
- 云片-语音验证码--短信验证码 - PHP接口
///////////////////////语音验证///////////////////////////// /** * 发送短信(语音验证码)云片语音服务 * @param $apikey ...
- 腾讯短信平台ASP接口范例
疫情后一个小项目要用到腾讯短信平台,因为比较老,用ASP写的,平台没有相应的ASP接口,百度不到,无奈之下自己写了一个,也方便需要的朋友们. 主要代码如下: <!--#include file= ...
- Java 使用阿里云短信的API接口
亲们上午好,写的不好的地方还望指正.谢谢各位! 引言 短信服务(Short Message Service)是阿里云为用户提供的一种通信服务的能力,支持快速发送短信验证码.短信通知等.(我这里只讲一个 ...
- .NET 中使用阿里云短信的 API 接口
小弟初来乍到,这也是我的第一篇文章,写的不好的地方还望指正.谢谢各位! 引言 短信服务(Short Message Service)是阿里云为用户提供的一种通信服务的能力,支持快速发送短信验证码.短信 ...
- C# 编写短信发送Window服务
我们做项目过程中,一般都会有发送短信的需求.最常见的就是户注册或者登录时发送短信验证码.不同类型的短信发送,我们都可以放到到一张短信表中,然后通过一个定时的作业去执行短信发送.而定时作业的执行,我们就 ...
- 通过移动的Mas接口发送短信
1. 首先,需要移动公司提供的用户名.密码.服务ID.接口Url等信息. 2. 将短信信息整理成XML格式的字符串,再转为byte数组,通过POST的方式,将短信发往Mas接口.需要引用"M ...
- day102:MoFang:后端完成对短信验证码的校验&基于celery完成异步短信发送&flask_jwt_extended&用户登录的API接口
目录 1.用户注册 1.后端完成对短信验证码的校验 2.基于celery实现短信异步发送 2.用户登录 1.jwt登录验证:flask_jwt_extended 2.服务端提供用户登录的API接口 1 ...
- 在网页程序或Java程序中调用接口实现短信猫收发短信的解决方案
方案特点: 在网页程序或Java程序中调用接口实现短信猫收发短信的解决方案,简化软件开发流程,减少各应用系统相同模块的重复开发工作,提高系统稳定性和可靠性. 基于HTTP协议的开发接口 使用特点在网页 ...
随机推荐
- 回顾PHP:第一章:PHP基础语法
第一章:PHP基础语法 一.常量: 1.1.define()函数:define(‘R’,’5’,’true’); //R:常量名,5:常量值,true:常量名对大小写不敏感,为false时表示对常量名 ...
- 、第1节 kafka消息队列:8、9、kafka的配置文件server.properties的说明
10.kafka的配置文件说明 Server.properties配置文件说明 #broker的全局唯一编号,不能重复 broker.id=0 #用来监听链接的端口,producer或consumer ...
- 深度学习Tensorflow框架的安装
选择下载安装Anaconda3.4.2.0-python3.5版本安装(3.6版本不适合后面opencv-python的安装): 打开Anaconda Prompt命令窗口编辑界面(黑窗口),输入py ...
- 4、mysql查询练习
1.创建四个表供查询 (1)学生表—Student 学号 姓名 性别 出生年月日 所在班级 [语句] > create table student( -> sno varchar(20) ...
- 使用 CAS 在 Tomcat 中实现单点登录 http://www.ibm.com/developerworks/cn/opensource/os-cn-cas/
developerWorks 中国 技术主题 Open source 文档库 使用 CAS 在 Tomcat 中实现单点登录 单点登录(Single Sign On , 简称 SSO )是目前比较流行 ...
- P1092 最好吃的月饼
1092 最好吃的月饼 (20分) 月饼是久负盛名的中国传统糕点之一,自唐朝以来,已经发展出几百品种. 若想评比出一种“最好吃”的月饼,那势必在吃货界引发一场腥风血雨…… 在这里我们用数字说话,给 ...
- 旧iPhone遭禁,会让苹果产业链迎来新转机吗?
过去几个月,苹果的日子并不好过,先是新iPhone定价过高导致销售疲软,股价连续下跌,万亿市值失守,被微软和亚马逊超越:手机销量上则被华为赶超,整个iPhone产业链都有点儿"哀鸿遍野&qu ...
- 清北学堂例题 LUOGU2519 【HAOI2011】PROBLEM A
题目描述 一次考试共有n个人参加,第i个人说:“有ai个人分数比我高,bi个人分数比我低.”问最少有几个人没有说真话(可能有相同的分数) 输入格式 第一行一个整数n,接下来n行每行两个整数,第i+1行 ...
- jquery动态选中radio,获取radio选中值
//动态选中radio值,1:表示radio的name 2:表示后台传过来的radio值$(":radio[name='1'][value='" + 2 + "']&qu ...
- 【转】Spark Streaming 实时计算在甜橙金融监控系统中的应用及优化
系统架构介绍 整个实时监控系统的架构是先由 Flume 收集服务器产生的日志 Log 和前端埋点数据, 然后实时把这些信息发送到 Kafka 分布式发布订阅消息系统,接着由 Spark Streami ...