zoukankan      html  css  js  c++  java
  • 用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的调用了吧,呵呵。

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

  • 相关阅读:
    图像轮廓最大内接矩形的求法
    python利用sift和surf进行图像配准
    Faster Rcnn随笔
    opencv利用svm训练
    灰度图片均衡化源码
    彩色直方图(源码)
    Tensorflow内存暴涨问题
    C++写入txt
    C++生成dll以及调用(函数)和类
    列表元素的几种统计方法总结(嵌套列表)
  • 原文地址:https://www.cnblogs.com/guojingmail2009/p/2816761.html
Copyright © 2011-2022 走看看