WebServiceX的GetWeather方法调用及PowerShell相关技术问题咨询
关于WebServiceX Weather Web Service的常见问题解答
1. 如何调用WebServiceX Web Service的GetWeather方法?
在Windows .NET环境下(包括PowerShell),调用这个方法的步骤很直接:
- PowerShell方式:
- 首先创建Web服务代理对象:
$weatherProxy = New-WebServiceProxy -Uri "http://www.webservicex.net/WeatherForecast.asmx?WSDL" - 直接调用
GetWeather方法,传入合法的城市名和国家名:$weatherResult = $weatherProxy.GetWeather("New York", "United States")
- 首先创建Web服务代理对象:
- .NET代码(以C#为例):
- 在项目中添加Web引用,指向上述WSDL地址
- 实例化服务客户端,调用方法:
WeatherForecast.WeatherForecastSoapClient client = new WeatherForecast.WeatherForecastSoapClient(); var weatherData = client.GetWeather("New York", "United States");
2. 在编写获取天气的脚本时,WSDL中的MemberType是否用于描述API?
简单来说:MemberType是WSDL类型系统的一部分,用于描述API涉及的数据结构,但不直接定义API方法本身。
WSDL里的MemberType通常出现在complexType的定义中,用来描述复杂数据类型(比如方法的返回对象、自定义参数类型)的成员属性。比如GetWeather返回的WeatherForecast类型,其内部的日期、气温等字段就会通过MemberType来定义。它是API描述的辅助部分,帮助客户端理解需要传递和接收的数据结构,而API的方法定义(比如方法名、参数列表)是在WSDL的operation节点中定义的。
3. 在PowerShell中,如何知晓可调用的方法以及如何调用这些方法?
当你用New-WebServiceProxy创建代理对象后,有几种方式来探索可用方法:
- 查看所有可用方法:
这个命令会列出代理对象上所有可调用的方法,包括$weatherProxy | Get-Member -MemberType MethodGetWeather、GetCountries、GetCitiesByCountry等。 - 查看特定方法的参数信息:
直接输入方法名(不带括号)就能看到参数定义:
会输出类似$weatherProxy.GetWeatherstring GetWeather(string CityName, string CountryName)的签名。 - 调用方法的方式就是直接传入匹配的参数,比如前面提到的
$weatherProxy.GetWeather("New York", "United States"),如果参数格式正确,就能返回对应的数据。
4. 调用GetWeather返回“Data Not Found”的原因是什么?正确的调用方式是怎样的?是否需要先调用其他方法?
返回“Data Not Found”最常见的原因是传入的城市名或国家名不符合服务的预期格式,这个服务对名称的匹配很严格,必须使用它认可的标准名称。
正确的调用流程其实需要先获取合法的国家和城市列表:
- 先调用
GetCountries方法获取所有支持的国家名称:
从返回的列表里挑选你需要的国家(比如$countries = $weatherProxy.GetCountries()"United States",注意大小写和拼写)。 - 再调用
GetCitiesByCountry方法,传入上一步的国家名,获取该国家下的合法城市列表:$cities = $weatherProxy.GetCitiesByCountry("United States") - 最后用列表里的城市名和对应国家名调用
GetWeather:$weatherResult = $weatherProxy.GetWeather("New York", "United States")
另外,还有可能的原因是该地区的天气数据暂未被服务收录,不过这种情况比较少见。一定要避免使用简称(比如用"US"代替"United States")或者拼写错误的名称,否则就会返回“Data Not Found”。
内容的提问来源于stack exchange,提问作者Thufir
相关产品推荐
相关产品推荐

