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

  最后如果你需要第二个方法判断发送条数,就在需要接口的地方调用第二个方法的名称就好啦,如果不需要判断那么直接调接口的方法吧!

  详细步奏已经讲解完了,你看懂了吗?

  欢迎提问哦!

时间: 2024-10-10 04:15:55

C#如何编写短信接口,以及接口的调用,包括C#.net访问web,并处理返回值的简例。的相关文章

手机卫士07_自定义吐司_桌面小火箭_短信备份_接口和回调_应用程序信息,

1,自定义吐司显示风格 ①创建一个布局文件(代码注册的View看不出效果,所以还是定义布局文件比较好) 这里的背景是.9图片会根据包裹内容来拉伸 ②在显示自定义吐司的界面,显示的吐司通过View.inflate()创建 ③在设置中心增加一条修改归属地显示风格. {"半透明","活力橙","卫士蓝","金属灰","苹果绿"}; 点击之后弹出一个单选对话框. builder.setSingleChoiceIte

java 发送短信sms实现接口

import java.io.UnsupportedEncodingException; import org.apache.commons.httpclient.Header; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.NameValuePair; import org.apache.commons.httpclient.methods.PostMethod; pu

单口GSM短信猫USB接口带DLL开发包

产品简介: 单口GSM短信猫,采用法国wavecom Q2303A模块(可定制其他模块比如Q2403A.Q2406A.Q2358C等)USB接口带DLL开发包,支持不同语言开发平台如VB.VC.Delphi等开发语言做二次开发. 提供USB驱动程序,支持不同电脑.服务器.笔记本等使用. 硬件参数: 产品类型:无线通讯模块 产品介绍:法国WAVECOM Q2303A GSM短信模块 产品特征 双频GSM/GPRS MODEM模块 执行ETSI GSM Phase 2+的标准 类别4(2W @ 90

短信api服务接口

短信api服务 北京畅游互联科技有限公司  http://www.haoservice.com/docs/17 短信api服务可以把写好的短信模板一次发给多个指定手机号码. 短信接口:URL: http://apis.haoservice.com/sms/send 支持格式:json http请求方式:GET/POST 参数说明: 名称 类型 必填 说明 mobile string 是 接收短信的手机号码 tpl_id int 是 短信模板ID,请参考个人中心短信模板设置 tpl_value s

短信验证平台接口调用实例

import java.io.IOException; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpException; import org.apache.commons.httpclient.NameValuePair; import org.apache.commons.httpclient.methods.PostMethod; import org.d

Java 使用阿里云短信的API接口

亲们上午好,写的不好的地方还望指正.谢谢各位! 引言 短信服务(Short Message Service)是阿里云为用户提供的一种通信服务的能力,支持快速发送短信验证码.短信通知等.(我这里只讲一个最基本的短信的发送验证码的功能) 1.第一步咱们先把环境准备好   1.1首先必须在阿里云注册一个账号,或者使用自己的淘宝账号支付宝账号 都是一样的  然后进行实名认证   1.2咱们进入控制台(在以上步骤的准备好的情况下) 然后点击左上角的产品 进来之后会叫你开通  点击开通即可  我的开通了 就

云之讯 亿美 短信的三方接口

云之讯model private function getResult($url, $body = null, $method) { $data = $this->connection($url,$body,$method); if (isset($data) && !empty($data)) { $result = $data; } else { $result = '没有返回数据'; } return $result; } /** * @param $url 请求链接 * @p

PHP-阿里云短信服务api接口

1. accessKeyId  个人账户密钥: 2. accessKeySecret 与上是成对的: 3. SignName  个人签名,在发出去的短信中,这个签名会显示在开头,类似 [签名]亲爱的用户...... 这种格式,SignName需要通过提交审核: 4.TemplateCode  模板代码,阿里云短信是无法完全自定义短信的,需要通过审核的模板,然后自己再替换掉模板中的变量,如模板:“您的验证码是${code}” ,code就是变量,使用时需设置变量值{"code":&quo

C# 编写短信发送Window服务

我们做项目过程中,一般都会有发送短信的需求.最常见的就是户注册或者登录时发送短信验证码.不同类型的短信发送,我们都可以放到到一张短信表中,然后通过一个定时的作业去执行短信发送.而定时作业的执行,我们就可以通过于Window服务去实现.(本篇只说window服务,具体实现短信发送的可以参考博客:http://www.cnblogs.com/ywl925/archive/2012/11/24/2786105.html) 1.首先我们创建一张短信内容表: 1 CREATE TABLE [dbo].[M