C#调用WebService实现天气预报

摘要:
//张奎。博客51个月。com/1796259/497324/本文使用Winform(C#)调用Internet上发布的WebServices(http://declaring字符串数组,以存储返回的结果字符串city=this。Text框1.文本。修剪());

http://zhangkui.blog.51cto.com/1796259/497324/

本文使用Winform (C#)调用互联网上公开的WebServices(http://www.webxml.com.cn/WebServices/WeatherWebService.asmx)来实现天气预报,该天气预报 Web 服务,数据来源于中国气象局 http://www.cma.gov.cn/ ,数据每2.5小时左右自动更新一次,准确可靠。包括 340 多个中国主要城市和 60 多个国外主要城市三日内的天气预报数据。

程序效果:

C#调用WebService实现天气预报第1张

实现步骤:

1、引入Web服务。在VS中项目上右击→添加服务引用。

C#调用WebService实现天气预报第2张 

2、在弹出的添加服务引用窗口,录入web服务地址和引用后的命名空间。

C#调用WebService实现天气预报第3张

3、布置winform窗体界面,实现代码。核心代码如下:

  1. private void button1_Click_1(object sender, EventArgs e)  
  2.   {  
  3.       Weather.WeatherWebServiceSoapClient w = new Weather.WeatherWebServiceSoapClient("WeatherWebServiceSoap");  
  4.       //把webservice当做一个类来操作  
  5.       string[] s = new string[23];//声明string数组存放返回结果  
  6.       string city = this.textBox1.Text.Trim();//获得文本框录入的查询城市  
  7.       s = w.getWeatherbyCityName(city);  
  8.       //以文本框内容为变量实现方法getWeatherbyCityName  
  9.       if (s[8] == "")  
  10.       {  
  11.           MessageBox.Show("暂时不支持您查询的城市");  
  12.       }  
  13.       else 
  14.       {  
  15.           pictureBox1.Image = Image.FromFile(@"d:image" + s[8] + "");  
  16.           this.label4.Text =s[1]+" "+s[6];  
  17.           textBox2.Text = s[10];     
  18.       }  
  19.  
  20.   } 

4、天气图标可至【http://www.webxml.com.cn/images/weather.zip】下载。

5、Web服务的各方法参数直接访问【http://www.webxml.com.cn/WebServices/WeatherWebService.asmx】查询,从而实现其它丰富功能,如未来天气预报等。


s = w.getWeatherbyCityName(city);
这行报“服务器无法处理请求。 ---> 未将对象引用设置到对象的实例。”错误怎么处理

添加服务引用->高级->添加web服务引用

 后台重新using引用 定义w对象时 博主的方法不能用 weather.cn.com.webxml.www.WeatherWebService w = new weather.cn.com.webxml.www.WeatherWebService(); 这样就行了

免责声明:文章转载自《C#调用WebService实现天气预报》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇OpenResty学习指南(一)关于html5 -- plus Webview模块管理应用窗口界面下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Tomcat中的c3p0数据库连接池的释放

一个项目通过c3p0获得连接池,相关代码如下: public class JdbcUtil { // 连接池的核心类 private static ComboPooledDataSource dataSource; //初始化连接池相关参数 static{ try { dataSource = new ComboPooledDat...

go语言实现限流器

本文:https://chai2010.cn/advanced-go-programming-book/ch5-web/ch5-06-ratelimit.html Ratelimit 服务流量限制 计算机程序可依据其瓶颈分为磁盘IO瓶颈型,CPU计算瓶颈型,网络带宽瓶颈型,分布式场景下有时候也会外部系统而导致自身瓶颈。 Web系统打交道最多的是网络,无论是...

Preference 使用详解

极力推荐文章:欢迎收藏Android 干货分享 阅读五分钟,每日十点,和您一起终身学习,这里是程序员Android 本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容: Perference 简介 Perference 使用方法 使用XML定义Preference 使用Fragment 定义Preference...

Dubbo的优雅下线原理分析

文/朱季谦 Dubbo如何实现优雅下线? 这个问题困扰了我一阵,既然有优雅下线这种说法,那么,是否有非优雅下线的说法呢? 这,还真有。 可以从linux进程关闭说起,其实,我们经常使用到杀进程的指令背后,就涉及到是否优雅下线的理念。 在日常开发当中,经常用到kill来关掉正在运行的进程,可能你曾看到过一些文章是不推荐使用kill -9 pid的指令来删除进...

Java代码常用写法总结

1.字符串是否为空判断 以下是java 判断字符串是否为空的四种方法:方法一: 最多人使用的一个方法, 直观, 方便, 但效率很低: if(s == null ||"".equals(s));方法二: 比较字符串长度, 效率高, 是我知道的最好一个方法:                      if(s == null || s.length() <...

用UIButton实现页面跳转(AppDelegate +NavigationViewController)

1.AppDelegate.h 定义一个UINavigationController  #import <UIKit/UIKit.h> #import "MainViewController.h"   @interface AppDelegate : UIResponder <UIApplicationDelegate>   @pr...