用C#写的winform调用webservice天气预报小软件教程(转自百度文库)

来源:互联网 发布:mac ps中文版破解版 编辑:程序博客网 时间:2024/05/17 05:52

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

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

 

下面开始:

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

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 = newweathertest.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的调用了吧,呵呵。

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

祝大家:

好好学习,天天向上!

 

<?xml version="1.0" encoding="utf-8"?>

-<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://WebXml.com.cn/">

 <string>广东</string>0

 <string>广州</string>1

 <string>59287</string>2

 <string>59287.jpg</string>3

 <string>2010-9-5 16:40:44</string>4

 <string>26℃/32℃</string>5

 <string>9月5日 阵雨转多云</string>6

 <string>无持续风向微风</string>7

 <string>3.gif</string>8

 <string>1.gif</string>9

 <string>今日天气实况:气温:32.8℃;风向/风力:西南风 小于3级;湿度:55%;气压:1000.3hPa;空气质量:良;紫外线强度:中等</string>10

 <string>穿衣指数:天气炎热,建议着短衫、短裙、短裤、薄型T恤衫、敞领短袖棉衫等清凉夏季服装。感冒指数:各项气象条件适宜,发生感冒机率较低。但请避免长期处于空调房间中,以防感冒。运动指数:有降水,建议在户内进行轻度运动。若坚持户外运动,请选择合适的运动,并携带雨具。洗车指数:不宜洗车,未来24小时内有雨,如果在此期间洗车,雨水和路上的泥水可能会再次弄脏您的爱车。晾晒指数:偶尔的降雨可能会淋湿晾晒的衣物,不太适宜晾晒。请随时注意天气变化。旅游指数:有阵雨,稍热,但有微风伴您一路同行,适宜旅游,可不要错过机会呦!请注意携带雨具或避开下雨时段。路况指数:有小雨,路面潮湿,车辆易打滑,请小心驾驶。舒适度指数:白天天气较热,虽然有雨,但仍然无法削弱较高气温给人们带来的暑意,这种天气会让您感到不很舒适。</string>11

 <string>27℃/33℃</string>12

 <string>9月6日 多云</string>13

 <string>无持续风向微风</string>14

 <string>1.gif</string>15

 <string>1.gif</string>16

 <string>28℃/35℃</string>17

 <string>9月7日 多云</string>18

 <string>无持续风向微风</string>19

 <string>1.gif</string>20

 <string>1.gif</string>21

 <string>广州是广东省的省会,是中国南方最大的海滨城市,广州位于东经113。17`,北纬23。8`,地处中国大陆南部,广东省南部,珠江三角洲北缘。广州临南海,邻近香港特别行政区,是中国通往世界的南大门,广州属丘陵地带。中国的第三大河----珠江从广州市中心穿流而过。广州是一座历史文化名城。相传在远古时候,曾有五位仙人,身穿五色彩服、骑着嘴衔稻穗的五色仙羊降临此地,把稻穗赠给百姓,祝愿这里永无饥荒。从此,广州便有“羊城”、“穗城”的美称,“五羊”也成为广州的象征。广州既是中国也是世界名城,又是一座古城,因历史上有五羊仙子降临献稻穗的故事,广州又称为“羊城”和“穗城”,简称“穗”;广州一年四季如春、繁花似锦,除夕迎春花市闻名海内外,故又有“花城”的美誉。广州地处低纬,属南亚热带季风气候区。地表接受太阳辐射量较多,同时受季风的影响,夏季海洋暖气流形成高温、高湿、多雨的气候;冬季北方大陆冷风形成低温、干燥、少雨的气候。年平均气温为21.4-21.9度,年降雨量平均为1623.6-1899.8mm,北部多于南部。1982年,广州被国务院选定为全国首批历史文化名城之一,是我国重点旅游城市。1999年1月,广州被评为优秀旅游城市。景观:白云山、莲花山、南海神庙、佛山祖庙、广州动物园等。</string>22

 </ArrayOfString>

 

 

 

点击选择windows Forms Application

命个名为 weathertest

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

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

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

 

 

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

0 0