莫相离 发表于 2015-1-16 22:36:08

ASP.NET编程:C#使用Web Service完成短信发送

也不知道,我同学昨天说数据挖掘很好。web  经由过程编程体例完成短信息的发送对良多人来讲是一件对照烦杂的事变,今朝一样平常的办理办法是经由过程盘算机和手机的连线,经由过程可敌手机编程的言语编写相干的手机短信息程序来完成,而这类办法关于常人来讲是很难到达的,由于此种办法不但要有良多必备的硬件设备,也还需明白手机编程的相干常识。本文就来切磋一下别的一种经由过程VisualC#发送短信息的复杂完成办法,这类办法在完成过程当中比我们设想的要复杂很多,只需具有VisualC#一样平常编程基本,并断定您的盘算机接进互联网便可。上面就来具体先容一下VisualC#发送短信息的详细完成历程。

  一.VisualC#发送短信息的道理:

  我想当良多读者一看到本文的标题必定会想本文内容必定十分深邃,而且作者必定晓得了电信的发送短信的网关地点,实在并不是云云。本文实际上是使用一个现成的资本,一个可发送短信的WebServiec。这个WebService就是新浪网就供应的一个,可供用户间接挪用的发送短动静的WebService。这个Service的地点是http://smsinter.sina.com.cn/ws/smswebservice0101.wsdl。在这个Service中供应了一个发送短动静的办法"sendXml"。此办法的语法格局以下:

stringsendXml(carrier,userid,password,mobilenumber,content,msgtype)

  sendXml办法中的六个参数均为string范例,而且sendXml办法的前往值也是string范例。

  以下是sendXml办法中的六个参数的详细申明:

  ・carrier:运营商称号,详细利用时此参数并没有甚么详细请求,即这内里能够任意输,输出的字符串也不会在对方手机中有任何显现。

  ・userid:在新浪网上注册的手机号,注册手机所用的地点是:http://sms.sina.com.cn,详细注册办法上面会详细先容。

  ・password:您在新浪网乐成注册手机后,新浪网所反应来的暗码。

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

  ・content:所要发送短动静的内容。

  ・msgtype:发送短动静的范例,因为本文发送的不是彩信,以是输出"Text"。

  挪用此WebService只需在VisualC#开辟情况中间接增加Web援用,把该地点输出便可,就能够利用此WebService中的sendXml办法发送短动静了。固然发送短动静的呆板必需接进互联网。

  二.在新浪网上注册手机:

  依照以下步骤便可在新浪网上注册手机:

  1.翻开扫瞄器,并在地点栏中输出新浪无线的地点:http://sms.sina.com.cn.。在扫瞄器德左上角,可见如图01界面:


图01:新浪网注册手机界面之一
  输出手机号后,单击图01中的"上岸",假如你的手机没有在新浪,则提醒如图02所示信息。


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

  2.依照图02中的选项输出响应的信息后,单击"上岸挪动梦网"按钮,假如注册乐成,挪动梦网则会向你注册的手机上发送一个8位长度的口令就能够失掉图03所示界面。


图03:新浪网注册手机界面之三
  这个口令要保存,上面发送短信就要利用这个口令。

  三.本文程序计划、调试和运转的情况:

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

  (2).VisualStudio.Net2003企业构建版,.NetFrameWorkSDK版本号4322。
  四.VisualC#完成短信息发送的详细完成步骤:

  VisualC#发送短信息的关头就是经由过程Web援用新浪网供应的发送短信息的WebService,并在援用完成后。挪用此Service的sendXml办法便可。以下就是VisualC#援用WebService发送短信息的详细完成步骤:

  1.启动VisualStudio.Net。

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

  3.将【项目范例】设置为【VisualBasic项目】。

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

  5.在【称号】文本框中输出【短信】。

  6.在【地位】的文本框中输出【E:VS.NET项目】,然后单击【断定】按钮,如许在"E:VS.NET项目"目次中就发生了称号为"短信"的文件夹,并在内里创立了称号为"短信"的项目文件。

  7.把VisualStudio.Net确当前窗口切换到【Form1.cs(计划)】窗口,并从【工具箱】中的【Windows窗体组件】选项卡中往Form1窗体中拖进以下组件,并实行响应的操纵:

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

  一个Button组件,其感化是发送短信息。并在这个Button组件拖进Form1的计划窗体后,双击它,则体系会在Form1.cs文件分离发生这个组件的Click事务对应的处置代码。

  8.把VisualStudio.Net确当前窗口切换到Form1.vb的代码编纂窗口,并用以下代码交换Form1.cs中的InitializeComponent历程对应的代码,以下代码感化是初始化窗体中到场的组件:

privatevoidInitializeComponent()
{
this.textBox1=newSystem.Windows.Forms.TextBox();
this.textBox2=newSystem.Windows.Forms.TextBox();
this.textBox3=newSystem.Windows.Forms.TextBox();
this.button1=newSystem.Windows.Forms.Button();
this.label1=newSystem.Windows.Forms.Label();
this.label2=newSystem.Windows.Forms.Label();
this.label3=newSystem.Windows.Forms.Label();
this.label4=newSystem.Windows.Forms.Label();
this.textBox4=newSystem.Windows.Forms.TextBox();
this.SuspendLayout();
this.textBox1.Location=newSystem.Drawing.Point(144,16);
this.textBox1.Name="textBox1";
this.textBox1.Size=newSystem.Drawing.Size(184,21);
this.textBox1.TabIndex=0;
this.textBox1.Text="";
this.textBox2.Location=newSystem.Drawing.Point(144,69);
this.textBox2.Name="textBox2";
this.textBox2.PasswordChar=*;
this.textBox2.Size=newSystem.Drawing.Size(184,21);
this.textBox2.TabIndex=1;
this.textBox2.Text="";
this.textBox3.Location=newSystem.Drawing.Point(144,122);
this.textBox3.Name="textBox3";
this.textBox3.Size=newSystem.Drawing.Size(184,21);
this.textBox3.TabIndex=2;
this.textBox3.Text="";
this.button1.Location=newSystem.Drawing.Point(152,256);
this.button1.Name="button1";
this.button1.Size=newSystem.Drawing.Size(80,32);
this.button1.TabIndex=4;
this.button1.Text="发送";
this.button1.Click+=newSystem.EventHandler(this.button1_Click);
this.label1.Location=newSystem.Drawing.Point(56,24);
this.label1.Name="label1";
this.label1.Size=newSystem.Drawing.Size(88,16);
this.label1.TabIndex=5;
this.label1.Text="注册手机号:";
this.label2.Location=newSystem.Drawing.Point(88,77);
this.label2.Name="label2";
this.label2.Size=newSystem.Drawing.Size(72,16);
this.label2.TabIndex=6;
this.label2.Text="口令:";
this.label3.Location=newSystem.Drawing.Point(56,128);
this.label3.Name="label3";
this.label3.Size=newSystem.Drawing.Size(96,16);
this.label3.TabIndex=7;
this.label3.Text="方针手机号:";
this.label4.Location=newSystem.Drawing.Point(96,176);
this.label4.Name="label4";
this.label4.Size=newSystem.Drawing.Size(72,16);
this.label4.TabIndex=8;
this.label4.Text="内容:";
this.textBox4.Location=newSystem.Drawing.Point(144,175);
this.textBox4.Multiline=true;
this.textBox4.Name="textBox4";
this.textBox4.Size=newSystem.Drawing.Size(184,48);
this.textBox4.TabIndex=3;
this.textBox4.Text="";
this.AutoScaleBaseSize=newSystem.Drawing.Size(6,14);
this.ClientSize=newSystem.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="VisualC#完成短信发送";
this.ResumeLayout(false);
}
  至此【短信】项目标界面计划和功效完成的筹办事情就完成了,详细如图04所示:


图04:【短信】项目标计划界面
  9.选中【短信】的【办理办法资本办理器】,右击【援用】,弹出【增加Web援用】对话框。在此对话框中的【URL】文本框中输出"http://smsinter.sina.com.cn/ws/smswebservice0101.wsdl"后,单击【转到】按钮,则会失掉图05所示界面:


图05:在【短信】项目中增加Web援用的界面
  此时单击图04中的【增加援用】按钮,则乐成完成在【短信】项目中增加可发送短信息的新浪网供应的WebService。

  10.把VisualStuido.Net确当前窗口切换到Form1.cs的代码编纂窗口,并用以下代码交换From1.cs中的button1的Click事务对应的代码,以下代码的感化是挪用引进的WebService中供应的sendXml办法向指定手机发送短信息:

privatevoidbutton1_Click(objectsender,System.EventArgse)
{
 短信.cn.com.sina.smsinter.SMSWSws=new短信.cn.com.sina.smsinter.SMSWS();
 stringresult=ws.sendXml("Sina",textBox1.Text,textBox2.Text,textBox3.Text,textBox4.Text,"new");
 MessageBox.Show(result);
}
  11.至此,在上述步骤都准确实行后,【短信】项目标全体事情就完成了。单击快速键F5运转程序,在输出【注册手机号】、【口令】、【方针手机号】和【内容】后,单击【发送】按钮后,程序就会向指定的手机号发送短信息了。

  五.总结:

  本文先容的这类VisualC#发送短信息办法,其办理关头是援用WebService,挪用此WebService中的办法。通不雅全文,此种办法是否是很复杂。最初还要提示诸位,使用这类发送短信息并非收费的午饭,其资费尺度可参看新浪无线网站上的相干申明,每发送一条免费一角钱,从在新浪网注册的手机上免费。在利用本文先容的办法发送短信息时,在发送完成后,一样平常会有一个提早。这是由于背景接纳了了动静行列机制,不外这类提早一样平常只会有几秒钟的工夫。
你可以先看看这篇文章(软微学院生涯-三朝元老经验谈),打不开再跟我说。(我的意思是想让她自己先稍微了解一下到底现在各个方向学的工具以及以后要做的工具大概是什么,因为喜欢做什么样的事其实自己最清楚的)

冷月葬花魂 发表于 2015-1-17 14:42:49

目前在微软的.net战略中新推出的ASP.net借鉴了Java技术的优点,使用CSharp(C#)语言作为ASP.net的推荐语言,同时改进了以前ASP的安全性差等缺点。但是,使用ASP/ASP.net仍有一定的局限性,因为从某种角度来说它们只能在微软的WindowsNT/2000/XP+IIS的服务器平台上良好运行(虽然像ChilliSoft提供了在UNIX/Linux上运行ASP的解决方案.

飘灵儿 发表于 2015-2-6 02:46:49

目前在微软的.net战略中新推出的ASP.net借鉴了Java技术的优点,使用CSharp(C#)语言作为ASP.net的推荐语言,同时改进了以前ASP的安全性差等缺点。但是,使用ASP/ASP.net仍有一定的局限性,因为从某种角度来说它们只能在微软的WindowsNT/2000/XP+IIS的服务器平台上良好运行(虽然像ChilliSoft提供了在UNIX/Linux上运行ASP的解决方案.

不帅 发表于 2015-2-15 06:03:23

以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。

透明 发表于 2015-3-4 11:22:47

弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。

柔情似水 发表于 2015-3-4 11:22:47

是目前ASP在UNIX/Linux上的应用可以说几乎为0)。所以平台的局限性和ASP自身的安全性限制了ASP的广泛应用。

第二个灵魂 发表于 2015-3-11 18:45:07

市场决定一切,我个人从经历上觉得两者至少在很长时间内还是要共存下去,包括C和C++,至少从找工作就看得出来,总不可能大家都像所谓的时尚一样,追捧一门语言并应用它。

因胸联盟 发表于 2015-3-19 07:47:01

是目前ASP在UNIX/Linux上的应用可以说几乎为0)。所以平台的局限性和ASP自身的安全性限制了ASP的广泛应用。

小魔女 发表于 2015-3-27 15:08:40

主流网站开发语言之ASP:ASP是微软(Microsoft)所开发的一种后台脚本语言,它的语法和VisualBASIC类似,可以像SSI(ServerSideInclude)那样把后台脚本代码内嵌到HTML页面中。虽然ASP简单易用,但是它自身存在着许多缺陷,最重要的就是安全性问题。
页: [1]
查看完整版本: ASP.NET编程:C#使用Web Service完成短信发送