`

C#利用Web Service实现短信发送

阅读更多
http://www.chinacs.net/archives/5/2006/3591.html

 

通过编程方式实现短信息的发送对很多人来说是一件比较烦杂的事情,目前一般的解决方法是通过计算机和手机的连线,通过可对手机编程的语言编写相关的 手机短信息程序来实现,而这种方法对于一般人来说是很难达到的,因为此种方法不仅要有很多必备的硬件设备,也还需懂得手机编程的相关知识。本文就来探讨一 下另外一种通过Visual C#发送短信息的简单实现方法,这种方法在实现过程中比我们想象的要简单许多,只需拥有Visual C#一般编程基础,并确定您的计算机接入互联网即可。下面就来详细介绍一下Visual C#发送短信息的具体实现过程。

  一. Visual C#发送短信息的原理:

  我想当很多读者一看到本文的题目一定会想本文内容一定非常深 奥,并且作者一定知道了电信的发送短信的网关地址,其实并非如此。本文其实是利用一个现成的资源,一个可发送短信的Web Serviec。这个Web Service就是新浪网就提供的一个,可供用户直接调用的发送短消息的Web Service。这个Service的地址是http: //smsinter.sina.com.cn/ws/smswebservice0101.wsdl。在这个Service中提供了一个发送短消息的方 法"sendXml"。此方法的语法格式如下:

string sendXml (carrier , userid , password , mobilenumber , content , msgtype )

  sendXml方法中的六个参数均为string类型,并且sendXml方法的返回值也是string类型。

  以下是sendXml方法中的六个参数的具体说明:

  ·carrier:运营商名称,具体使用时此参数并没有什么具体要求,即这里面可以随便输,输入的字符串也不会在对方手机中有任何显示。

  ·userid:在新浪网上注册的手机号,注册手机所用的地址是:http://sms.sina.com.cn,具体注册方法下面会具体介绍。

  ·password:您在新浪网成功注册手机后,新浪网所反馈来的密码。

  ·mobilenumber:要发送短信到对方的手机号码。

  ·content:所要发送短消息的内容。

  ·msgtype:发送短消息的类型,由于本文发送的不是彩信,所以输入"Text"。

  调用此Web Service只需在Visual C#开发环境中直接添加Web引用,把该地址输入即可,就可以使用此Web Service中的sendXml方法发送短消息了。当然发送短消息的机器必须接入互联网。

  二.在新浪网上注册手机

  按照如下步骤就可在新浪网上注册手机:

  1. 打开浏览器,并在地址栏中输入新浪无线的地址:http://sms.sina.com.cn.。在浏览器德左上角,可见如图01界面:

 


图01:新浪网注册手机界面之一

  输入手机号后,单击图01中的"登陆",如果你的手机没有在新浪,则提示如图02所示信息。


图02:新浪网注册手机界面之二


  2. 按照图02中的选项输入相应的信息后,单击"登陆移动梦网"按钮,如果注册成功,移动梦网则会向你注册的手机上发送一个8位长度的口令就可以得到图03所示界面。


图03:新浪网注册手机界面之三

  这个口令要保留,下面发送短信就要使用这个口令。

  三.本文程序设计、调试和运行的环境:

  (1).微软公司视窗2000服务器版。

  (2).Visual Studio .Net 2003企业构建版,.Net FrameWork SDK版本号4322。
  四.Visual C#实现短信息发送的具体实现步骤:

  Visual C#发送短信息的关键就是通过Web引用新浪网提供的发送短信息的Web Service,并在引用完成后。调用此Service的sendXml方法即可。以下就是Visual C#引用Web Service发送短信息的具体实现步骤:

  1. 启动Visual Studio .Net。

  2. 选择菜单【文件】|【新建】|【项目】后,弹出【新建项目】对话框。

  3. 将【项目类型】设置为【Visual Basic项目】。

  4. 将【模板】设置为【Windows应用程序】。

  5. 在【名称】文本框中输入【短信】。

  6. 在【位置】的文本框中输入【E:\VS.NET项目】,然后单击【确定】按钮,这样在"E:\VS.NET项目"目录中就产生了名称为"短信"的文件夹,并在里面创建了名称为"短信"的项目文件。

  7. 把Visual Studio .Net的当前窗口切换到【Form1.cs(设计)】窗口,并从【工具箱】中的【Windows窗体组件】选项卡中往Form1窗体中拖入下列组件,并执行相应的操作:

  四个Label组件。
  四个TextBox组件。

  一个Button组件,其作用是发送短信息。并在这个Button组件拖入Form1的设计窗体后,双击它,则系统会在Form1.cs文件分别产生这个组件的Click事件对应的处理代码。

  8. 把Visual Studio .Net的当前窗口切换到Form1.vb的代码编辑窗口,并用下列代码替换Form1.cs中的InitializeComponent过程对应的代码,下列代码作用是初始化窗体中加入的组件:

private void InitializeComponent ( )
{
this.textBox1 = new System.Windows.Forms.TextBox ( ) ;
this.textBox2 = new System.Windows.Forms.TextBox ( ) ;
this.textBox3 = new System.Windows.Forms.TextBox ( ) ;
this.button1 = new System.Windows.Forms.Button ( ) ;
this.label1 = new System.Windows.Forms.Label ( ) ;
this.label2 = new System.Windows.Forms.Label ( ) ;
this.label3 = new System.Windows.Forms.Label ( ) ;
this.label4 = new System.Windows.Forms.Label ( ) ;
this.textBox4 = new System.Windows.Forms.TextBox ( ) ;
this.SuspendLayout ( ) ;
this.textBox1.Location = new System.Drawing.Point ( 144 , 16 ) ;
this.textBox1.Name = "textBox1" ;
this.textBox1.Size = new System.Drawing.Size ( 184 , 21 ) ;
this.textBox1.TabIndex = 0 ;
this.textBox1.Text = "" ;
this.textBox2.Location = new System.Drawing.Point ( 144 , 69 ) ;
this.textBox2.Name = "textBox2" ;
this.textBox2.PasswordChar = ''''''''*'''''''' ;
this.textBox2.Size = new System.Drawing.Size ( 184 , 21 ) ;
this.textBox2.TabIndex = 1 ;
this.textBox2.Text = "" ;
this.textBox3.Location = new System.Drawing.Point ( 144 , 122 ) ;
this.textBox3.Name = "textBox3" ;
this.textBox3.Size = new System.Drawing.Size ( 184 , 21 ) ;
this.textBox3.TabIndex = 2 ;
this.textBox3.Text = "" ;
this.button1.Location = new System.Drawing.Point ( 152 , 256 ) ;
this.button1.Name = "button1" ;
this.button1.Size = new System.Drawing.Size ( 80 , 32 ) ;
this.button1.TabIndex = 4 ;
this.button1.Text = "发送" ;
this.button1.Click += new System.EventHandler ( this.button1_Click ) ;
this.label1.Location = new System.Drawing.Point ( 56 , 24 ) ;
this.label1.Name = "label1" ;
this.label1.Size = new System.Drawing.Size ( 88 , 16 ) ;
this.label1.TabIndex = 5 ;
this.label1.Text = "注册手机号:" ;
this.label2.Location = new System.Drawing.Point ( 88 , 77 ) ;
this.label2.Name = "label2" ;
this.label2.Size = new System.Drawing.Size ( 72 , 16 ) ;
this.label2.TabIndex = 6 ;
this.label2.Text = "口令:" ;
this.label3.Location = new System.Drawing.Point ( 56 , 128 ) ;
this.label3.Name = "label3" ;
this.label3.Size = new System.Drawing.Size ( 96 , 16 ) ;
this.label3.TabIndex = 7 ;
this.label3.Text = "目标手机号:" ;
this.label4.Location = new System.Drawing.Point ( 96 , 176 ) ;
this.label4.Name = "label4" ;
this.label4.Size = new System.Drawing.Size ( 72 , 16 ) ;
this.label4.TabIndex = 8 ;
this.label4.Text = "内容:" ;
this.textBox4.Location = new System.Drawing.Point ( 144 , 175 ) ;
this.textBox4.Multiline = true ;
this.textBox4.Name = "textBox4" ;
this.textBox4.Size = new System.Drawing.Size ( 184 , 48 ) ;
this.textBox4.TabIndex = 3 ;
this.textBox4.Text = "" ;
this.AutoScaleBaseSize = new System.Drawing.Size ( 6 , 14 ) ;
this.ClientSize = new System.Drawing.Size ( 410 , 303 ) ;
this.Controls.Add ( this.button1 ) ;
this.Controls.Add ( this.textBox4 ) ;
this.Controls.Add ( this.textBox3 ) ;
this.Controls.Add ( this.textBox2 ) ;
this.Controls.Add ( this.textBox1 ) ;
this.Controls.Add ( this.label4 ) ;
this.Controls.Add ( this.label3 ) ;
this.Controls.Add ( this.label2 ) ;
this.Controls.Add ( this.label1 ) ;
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle ;
this.MaximizeBox = false ;
this.Name = "Form1" ;
this.Text = "Visual C#实现短信发送" ;
this.ResumeLayout ( false ) ;
}

  至此【短信】项目的界面设计和功能实现的准备工作就完成了,具体如图04所示:


图04:【短信】项目的设计界面

   9. 选中【短信】的【解决方法资源管理器】,右击【引用】,弹出【添加Web引用】对话框。在此对话框中的【URL】文本框中输入"http: //smsinter.sina.com.cn/ws/smswebservice0101.wsdl"后,单击【转到】按钮,则会得到图05所示界面:


图05:在【短信】项目中添加Web引用的界面

  此时单击图04中的【添加引用】按钮,则成功实现在【短信】项目中添加可发送短信息的新浪网提供的Web Service。

   10. 把Visual Stuido .Net的当前窗口切换到Form1.cs的代码编辑窗口,并用下列代码替换From1.cs中的button1的Click事件对应的代码,下列代码的 作用是调用引入的Web Service中提供的sendXml方法向指定手机发送短信息:

private void button1_Click ( object sender , System.EventArgs e )
{
 短信.cn.com.sina.smsinter.SMSWS ws = new 短信.cn.com.sina.smsinter.SMSWS ( ) ;
 string result = ws.sendXml ( "Sina" ,textBox1.Text ,textBox2.Text ,textBox3.Text ,textBox4.Text ,"new" ) ;
 MessageBox.Show ( result ) ;
}

  11. 至此,在上述步骤都正确执行后,【短信】项目的全部工作就完成了。单击快捷键F5运行程序,在输入【注册手机号】、【口令】、【目标手机号】和【内容】后,单击【发送】按钮后,程序就会向指定的手机号发送短信息了。

  五.总结:

   本文介绍的这种Visual C#发送短信息方法,其解决关键是引用Web Service,调用此Web Service中的方法。通观全文,此种方法是不是很简单。最后还要提醒诸位,利用这种发送短信息并不是免费的午餐,其资费标准可参看新浪无线网站上的相 关说明,每发送一条收费一角钱,从在新浪网注册的手机上收费。在使用本文介绍的方法发送短信息时,在发送完成后,一般会有一个延迟。这是因为后台采用了了 消息队列机制,不过这种延迟一般只会有几秒钟的时间。

 

分享到:
评论

相关推荐

    Web Service实现短信发送 C#

    在提供的文档`C#利用Web Service实现短信发送.doc`中,应包含了实现这一功能的详细步骤和示例代码。文档可能涵盖了如何创建Web Service项目,定义服务接口,调用短信API,以及在C#客户端如何消费Web Service的代码...

    C#利用Web Service发送手机短信

    通过学习和运行这些示例,你可以亲自动手实践并掌握C#利用Web Service发送手机短信的技术。 总之,C#结合Web Service发送手机短信涉及到的知识点包括:Web Service的概念和创建,C#中的HTTP请求实现,错误处理,...

    C#利用Web_Service实现短信发

    根据给定的信息,本文将详细介绍如何使用C#与Web Service技术来实现短信发送功能。文章主要分为以下几个部分:原理概述、注册所需服务...希望本文能帮助读者更好地理解和掌握如何利用C#和Web Service技术实现短信发送。

    c#利用短信远程关闭计算机源码

    本示例中的“c#利用短信远程关闭计算机源码”是一个独特的应用场景,它结合了C#编程、网络通信和移动通讯技术,使得用户可以通过发送短信的方式来控制远程计算机的开关状态。 首先,我们要理解这个系统的工作原理。...

    C# 手机发送短信

    在IT行业中,C#是一种广泛使用的编程语言,尤其在开发Windows应用程序、Web应用程序以及游戏等领域。本主题聚焦于使用C#实现手机发送短信的功能。这个功能通常涉及到移动通信技术、网络编程以及API调用等技术。 一...

    c#发送短信.docx

    通过以上步骤,C#开发者可以轻松实现基于Web Service的短信发送功能,无需复杂的硬件设备或专业知识,只需要基本的编程技巧和互联网连接。这个方法简单易用,适用于各种需要短信发送功能的应用场景,比如系统通知、...

    C#源程序CS调用短信发送

    本项目涉及的是利用C#(CS代表C#的客户端应用)来编写源程序,实现通过调用短信服务平台的Web服务接口发送短信的功能。这在业务场景中非常常见,比如验证码发送、通知提醒等。 首先,我们需要理解Web服务的概念。...

    C#发送短信

    学习和理解这些代码,将有助于你快速掌握在C#中实现短信发送的技巧。 总的来说,通过接口发送短信是一个涉及网络通信、API调用和错误处理等多个方面的问题。理解和掌握这些知识点,不仅可以让你在C#项目中实现短信...

    C# 发短信功能 代码

    在C#中实现短信发送,通常需要与短信网关进行交互,这些网关负责将短信从应用传递到移动运营商的网络。 二、C# SMS发送方法 1. 使用SMPP协议:SMPP(Short Message Peer-to-Peer)是用于直接连接到短信中心(SMSC)...

    利用STP构建 Web Service(SOA)

    面向服务的体系结构(SOA)则是利用Web Service来实现的一种流行软件体系结构。然而,在使用J2EE技术实现SOA的过程中,开发人员往往需要编写大量的原始文件,这使得开发工作极具挑战性。为了解决这一问题,业界出现...

    纯粹基于C#的短信收发源代码

    本主题涉及的是一个纯粹基于C#实现的短信收发系统,它不依赖任何第三方控件或组件,而是利用COM接口和AT命令来与GSM模块进行通信。这个系统对于理解GSM通信协议、C#编程以及COM组件的应用有着重要的学习价值。 1. *...

    C#短信发送到手机

    本主题聚焦于如何利用C#实现短信发送功能,将消息传递到手机。这通常涉及到集成SMS服务提供商的API,以便从您的应用程序中发送短信。 首先,我们需要了解SMS(Short Message Service)即短信服务,它是移动通信网络...

    VS2019 c# 中国移动云mas平台 webservice实现

    本篇文章将深入探讨如何使用Visual Studio 2019(VS2019)和C#语言,结合中国移动云MAS(Mobile Application Service)平台,来实现WebService的调用与开发。 1. **Visual Studio 2019简介** Visual Studio 2019是...

    sms短信发送

    本文将深入探讨“sms短信发送”的相关知识点,包括短信发送的原理、西门子模块的应用、图形界面设计、MySQL数据库的使用以及整个系统的实现。 首先,SMS(Short Message Service)短信服务是移动通信网络中的一个...

    用手机发送短信和彩信程序

    标题中的“用手机发送短信和彩信程序”指的是利用编程技术开发的一款应用,该...通过分析和学习这个程序,不仅可以提升C#编程能力,还能了解ASP.NET Web应用开发,以及如何与硬件设备集成,实现短信和彩信的发送功能。

    网站手机短信验证功能的源代码

    Java是一种广泛使用的编程语言,其JMS(Java Message Service)可以用于实现短信发送功能。开发者可能使用了第三方API,如阿里云、腾讯云等短信服务商提供的SDK,来发送和接收短信验证码。关键步骤包括连接服务、...

    短信接口代码说明支持主流语言

    以上接口的详细说明有助于开发者快速理解和实现短信服务的集成,无论是简单的短信发送,还是复杂的业务流程触发的短信通知,都能通过这些接口轻松完成。在实际应用中,这些功能可为企业提供高效、可靠的通信手段,...

    3gpp-parlayx-wsdl-Short messaging.zip

    3. parlayx_sms_send_service_4_0.wsdl:这是发送短信的服务定义,定义了实际执行短信发送操作的服务端点。 4. parlayx_sms_notification_manager_service_4_0.wsdl:短信通知管理服务的定义,用于管理用户的短信...

    SmsTest.zip_visual c

    总结来说,通过Visual C#和.NET框架,我们可以方便地实现与Web服务的集成,从而实现短信发送功能。这不仅需要掌握编程语言的基本技能,还需要理解Web服务的工作原理以及如何有效地与之交互。这个过程既锻炼了我们的...

Global site tag (gtag.js) - Google Analytics