首页 > 编程语言 >C# 后台获取天气情况

C# 后台获取天气情况

时间:2022-10-20 11:24:35浏览次数:79  
标签:Web 文件 C# 天气情况 如下 str 后台 wsdl WeatherWS

 

 

转载:http://t.zoukankan.com/gaohongchen01-p-5535694.html

 

本文使用C#开发Winform应用程序,通过调用<WebXml/>(URL:http://www.webxml.com.cn)的WebService服务WeatherWS来获取天气预报数据。本程序所使用的Web服务的URL为:http://ws.webxml.com.cn/WebServices/WeatherWS.asmx,此服务为“2400多个城市天气预报Web服务”。

  开发环境说明:

  • 系统平台:Windows 7(32bit);
  • 开发工具:VS2010;

实现过程

  本程序通过“添加Web引用”和“使用WSDL文件”两种方式实现WebService服务的调用。

1、添加Web引用

  首先,新建一个WinForm应用程序,在“解决方案管理器”中为该工程添加Web引用:右击工程-->添加服务引用,弹出如下“服务引用设置”对话框:

  

  点击该对话框“添加Web引用”按钮,弹出“Web引用”对话框,在其中的URL处输入WeatherWS服务地址(http://ws.webxml.com.cn/WebServices/WeatherWS.asmx),点击转到“-->”按钮,修改Web引用名为“WebRefWeather”,如下图所示:

  

  此时,在需要获取天气信息的地方添加“获取天气核心代码”即可。我是在"按钮响应函数"中添加的,代码如下:

WebRefWeather.WeatherWS weather = new WebRefWeather.WeatherWS();
string[] str = new string[32];
try
{
    str = weather.getWeather("北京", "");
    MessageBox.Show(str[0] + "
" + str[1] + "
" + str[2] + "
" + str[4] + "
" + str[5], "天气信息");
}
catch (Exception ex)
{
    MessageBox.Show(ex.Message);
}

  程序运行后,点击按钮,即可显示天气信息,如下图所示:

  

2、使用WSDL文件

  此方法为通过使用VS工具由Web服务URL(http://ws.webxml.com.cn/WebServices/WeatherWS.asmx)或者本地的WeatherWS.asmx文件得到wsdl文件;然后由wsdl文件生成cs文件,即Web服务代理类,最后通过使用此类获取天气数据。即一下几步:

  • asmx文件 --> wsdl文件(VS2010工具:disco);
  • wsdl文件 --> cs文件(VS2010工具:wsdl);

  首先,看一下disco工具的帮助,如下图所示:

  

  通过如下命令,得到wsdl文件:

disco http://ws.webxml.com.cn/WebServices/WeatherWS.asmx

  如下图所示:

  

  然后,通过wsdl命令由wsdl文件生成cs文件,wsdl命令帮助如下:

  

  生成cs文件的命令如下:

wsdl /l:cs /n:NS_WeatherWS /out:WeatherWS.cs WeatherWS.wsdl

  即:

  

  此时,将cs文件加入到新建的Winform工程中,再在按钮的响应函数中加入如下核心代码:

NS_WeatherWS.WeatherWS weather = new NS_WeatherWS.WeatherWS();
string[] str = new string[32];
try
{
    str = weather.getWeather("北京", "");
    MessageBox.Show(str[0] + "
" + str[1] + "
" + str[2] + "
" + str[4] + "
" + str[5], "天气信息");
}
catch (Exception ex)
{
    MessageBox.Show(ex.Message);
}

  此时,运行程序,会出现如下错误:

命名空间“System.Web”中不存在类型或命名空间名称“Services”。是否缺少程序集?

  解决办法:在该工程中添加DotNet引用System.Web.Services即可,如下图所示:

  

  添加之后,再启动程序,程序即会启动成功。然后,点击按钮,即会像上一个方法一样显示天气信息,如下图所示:

  

标签:Web,文件,C#,天气情况,如下,str,后台,wsdl,WeatherWS
From: https://www.cnblogs.com/lhlong/p/16809080.html

相关文章

  • 2022-10-20 微信浏览器css定位异常
    如题,一个登录弹窗界面,在安卓手机(华为畅享z)、pc(window)上能点击输入框正确弹出输入框,而在一些iphone机型上则会出现定位异常问题,比如iphone6sp,点击输入框无法唤出手机输入框,......
  • ICMP timestamp请求响应漏洞CVE-1999-0524解决方法
     ICMPtimestamp请求响应漏洞CVE-1999-0524解决方法1、添加进和出的规则firewall-cmd--permanent--direct--add-ruleipv4filterINPUT0-pICMP--icmp-typetime......
  • docker容器报x509:certificate signed by unknown authority错误
    在执行dockersearch,dockerpull命令时,我遇到的报错信息Errorresponsefromdaemon:Get"https://registry-1.docker.io/v2/":x509:certificatesignedbyunknowna......
  • 图像调色处理软件:Picture Instruments Image 2 LUT Pro for Mac
    想要一款图像调色软件?小编为大家推荐Image2LUTProMac版,一款专业的图像调色小工具。Image2LUTProMac版提供了一些非常有用的选项。除了着色的一般强度,您还可以控制......
  • 第三十五章 Centos7下rpm安装Docker-17.03
    一、安装依赖[root@cos-ftp~]#sudoyuminstalllibxml2-devellibcurl-devel-y二、下载Docker安装包#1.下载地址:https://download.docker.com/linux/centos/7/x86......
  • linux下rsync的同步
    rsync是linux系统下的数据镜像备份工具。使用快速增量备份工具RemoteSync可以远程同步,支持本地复制,或者与其他SSH、rsync****主机同步文件下载地址:链接:https://pan.bai......
  • Error:java: Compilation failed: internal java compiler error
    IDEA编译报错,jdk设置问题,查看pom中的编译版本(如果是maven项目的话)1、查看项目的jdk(Ctrl+Alt+shift+S)File->ProjectStructure->ProjectSettings->Project2、查看模......
  • SVN中Revert changes from this revision 跟Revert to this revision的区别
    假如有个 文件,有十个版本,假定版本号是1,2,3,4,5,6,7,8,9,10。Reverttothisrevision:如果是在版本6这里点击“Reverttothisrevision”,表示7~10的修改全部作废,历史倒退到了版本6......
  • cat userlist
    catuserlist任务1.Linux文件系统的三层抽象是什么?2.写出Catuserlist的过程,要详述目录文件,i-node.数据块,要画图示意。假设块大小为4k,userlist的大小不小于10k,自......
  • CF920F SUM and REPLACE
    题目链接CF920FSUMandREPLACESUMandREPLACE给定\(n\)个数的数组\(a\),\(m\)次操作。操作有两种:1.将\(i\in[l,r]\)中的所有\(a_i\)替换为\(d(a_i)\)。\(d......