c#(未测试)--C#写的winform调用webservice小软件

来源:互联网 发布:看股票走势的软件 编辑:程序博客网 时间:2024/06/05 00:58

 一用C#写的winform调用webservice天气预报小软件教程

用C#写的winform调用webservice天气预报小软件教程

我们来研究c#在winform上调用webservice实现一个的实例,开始之前先罗嗦几句,对于webservice我之前从来没有接触过,今天突然想为自己的手机做个天气预报小软件,所以才开始看资料,上网查别人做的教程,很多都是一带而过,大体的说该怎么做,具体的却很少,所以象我这样的菜鸟基本是一头雾水,没办法只有不断的试,经过一中午的努力终于做出来了。下面我把我做的每一步都详细的记录下来,希望跟我一样初级入门的人能更快速更省力的掌握好这个东东。

我用的是vs2008,调用的webservice是网上的,网址是:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx页面如下:

下面开始:









1.打开vs2008,新建一个c#下的project项目

点击选择windows Forms Application

命个名为 weathertest

2.这时候我们要设计窗体,设计窗体之前,我们研究一下网上的webservice会返回给我们什么。

输入网址,打开网页以后我们发现,咦!!好几个方法,这里我们只调用其根据城市名字获得天气的那一个,所以我们就点它进去,其他的我们不理啦。学会了这个以后你们可以顺便去拿他们练习一下。点击getWeatherbyCityName那个链接,进去后上面就有介绍的该方法该如何调用,大家都能看得懂,这里我就不详解了啊。

在测试那个文本框里输入一个城市名,比如:青岛  ,我们得到如下结果:

根据这个前一页的介绍,这个方法返回的是一个string数组,里面有23个元素,所以上图中每一个<string></string>中间的元素就是数组的一个元素,这里我们就可以根据我们想要的数组元素来确定窗体的设计,我的设计如下:

Ok,设计完窗体,我们就开始研究如何调用网上的这个webservice啦。

3.回到vs2008,右键点击解决方案选择add service reference

在添加窗口中复制进我们要调用的webservice地址:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx

在namespace里输入我们自己定义的名字,这里我叫它Weather,点一下GO,等如上图以后,点击ok,工具就会自动把这个webservice添加到项目中。这时我们会看到多了个这个:

这就说明到这步我们是正确的,接下来我们来编写调用它的代码:

4.双击我们设计的窗体上的按钮,在click事件中输入代码:

private void button1_Click(object sender, EventArgs e)

        {

          weathertest.Weather.WeatherWebServiceSoapClient w = new weathertest.Weather.WeatherWebServiceSoapClient("WeatherWebServiceSoap");

//把webservice当做一个类来操作

            string[] s = new string[23];//声明一个string数组存放其返回的结果

            string c = this.textBox2.Text.Trim();//获得文本框2的内容

            s = w.getWeatherbyCityName(c);

//以文本框内容为变量实现方法getWeatherbyCityName

           if (s[8] == "")

           {

                MessageBox.Show("暂时不支持您查询的城市");

            }

            else

            {

              //  pictureBox1.Image = Image.FromFile(@"d:\image\" + s[8] + "");

//将相应的值赋给相应的文本显示出来

               textBox1.Text = s[0];

            textBox3.Text = s[1];

            textBox4.Text = s[2];

            textBox5.Text = s[4];

            textBox6.Text = s[5];

            textBox7.Text = s[6];

            textBox8.Text = s[7];

            textBox9.Text = s[10];

            textBox10.Text = s[12];

            textBox11.Text = s[13];

            textBox12.Text = s[14];

            textBox13.Text = s[17];

            textBox14.Text = s[18];

            textBox15.Text = s[19];

            }

        }

输入完代码以后,运行,

Ok,这个实例就完成了。

    看完这个实例相信大家都能更轻松更快速的掌握webservice的调用了吧,呵呵。

最后说一下,由于本人水平较低,所以可能会有错误,请大家多多见谅哈,

祝大家:

好好学习,天天向上!

 

二发短信实例

通过编程方式实现短信息的发送对很多人来说是一件比较烦杂的事情,目前一般的解决方法是通过计算机和手机的连线,通过可对手机编程的语言编写相关的手机短信息程序来实现,而这种方法对于一般人来说是很难达到的,因为此种方法不仅要有很多必备的硬件设备,也还需懂得手机编程的相关知识。本文就来探讨一下另外一种通过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中的方法。通观全文,此种方法是不是很简单。最后还要提醒诸位,利用这种发送短信息并不是免费的午餐,其资费标准可参看新浪无线网站上的相关说明,每发送一条收费一角钱,从在新浪网注册的手机上收费。在使用本文介绍的方法发送短信息时,在发送完成后,一般会有一个延迟。这是因为后台采用了了消息队列机制,不过这种延迟一般只会有几秒钟的时间。

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 屏幕解锁密码忘了怎么办 华为手机屏幕解锁密码忘了怎么办 oppo锁屏密码忘了怎么办 云助理密码忘了怎么办 购买方发票丢了怎么办 普票发票联丢失怎么办 唯品金融没还款怎么办 金点原子锁打不开了怎么办 87彩店注册不了怎么办 微店如果不退款怎么办 微信上微商被骗怎么办 微商代理不做了怎么办 微店拒收不退款怎么办 在微商买东西被骗怎么办 云集买家买东西不退款怎么办 微信红包密码忘记了怎么办 微信购物不退货怎么办 微信隐私设置无法添加怎么办 微信支付被限额怎么办 微信发现没有购物怎么办 微信转账钱被骗怎么办 玩连环夺宝输了好多钱怎么办 厘米秀换不了装怎么办 社保只缴纳两年怎么办 502盖子粘到手上怎么办 口红粘在盖子上怎么办 玫瑰手杖永久错过了怎么办 手指沾到502胶水怎么办 我退款了货到了怎么办 世纪天成账号被盗什么也没绑怎么办 韩国电话卡不想用怎么办2018 汽车没有年检交警抓到怎么办 ios软件未受信任怎么办 淘宝开店被管理了怎么办 微店网络异常025怎么办 商家给买家返款转错了怎么办 淘宝号限制下单怎么办 淘宝退货单号填错了怎么办 淘宝买家申请退款不退货怎么办 不支持7天无理由怎么办 淘宝上不给退货怎么办