从weather.gov运行示例Web服务代码时出错

时间:2011-02-22 16:51:54

标签: php webservice-client

我正在尝试将NOAA的天气数据整合到我的网站中,作为起点,我尝试运行他们的示例代码(可用here。我尝试使用的具体示例是Basic Client示例(起点是ndfdXML.htm)。

我已经按照readme说明下载nuSOAP并将位置更改为本地路径,并将soapclient的位置更改为www.weather.gov而不是localhost,但是当我实际提交页面时我仍然收到错误

当我执行view-source时,错误才会出现,这就是它所说的:

Fatal error:  Uncaught SoapFault exception: 
[WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://www.weather.gov/forecasts/xml/SOAP_server/ndfdXMLserver.php': 
Extra content at the end of the document  in /opt/lampp/htdocs/weather/ndfdXMLclient.php:179

Stack trace:
#0 /opt/lampp/htdocs/weather/ndfdXMLclient.php(179): SoapClient->SoapClient('http://www.weat...')
#1 {main}   thrown in /opt/lampp/htdocs/weather/ndfdXMLclient.php on line 179

知道这意味着什么吗?我一直无法找到实际气象服务提供的任何帮助。

1 个答案:

答案 0 :(得分:0)

我打赌你需要在SoapClient代码中将实际路径放到wsdl中。

http://www.weather.gov/forecasts/xml/SOAP_server/ndfdXMLserver.php?wsdl

(注意最后的“?wsdl”)

看起来您的代码正在尝试使用http://www.weather.gov/forecasts/xml/SOAP_server/ndfdXMLserver.php创建SoapClient作为wsdl的路径。如果你真的去那里,你会发现这不是wsdl。它实际上位于这篇文章的第一个网址。