這個Ruby代碼的偉大工程:瑣碎的端口出現故障
require 'soap/wsdlDriver'
wsdl_url = 'http://www.weather.gov/forecasts/xml/DWMLgen/wsdl/ndfdXML.wsdl'
proxy = SOAP::WSDLDriverFactory.new(wsdl_url).create_rpc_driver
print proxy.NDFDgen(35.05,-106.65,"glance","2010-11-20T00:00:00","2010-11-20T07:00:00","temp")
這Perl代碼返回一個空字符串:
use SOAP::Lite;
$client = SOAP::Lite->new(proxy => "http://www.weather.gov/forecasts/xml/DWMLgen/wsdl/ndfdXML.wsdl");
$som = $client->call("NDFDgen", 35.05,-106.65,"glance","2010-11-20T00:00:00","2010-11-20T07:00:00","temp");
die $som->fault->{ faultstring } if ($som->fault);
print $som->result, "\n";
請告訴爲什麼? (Perl代碼幾乎是從「perldoc SOAP :: Lite」直接複製/粘貼的)。
我想我的問題是:爲什麼上面的Perl代碼沒有像上面的Ruby代碼那樣工作,因爲它們幾乎是相同的。 – barrycarter 2011-05-07 01:32:31
,因爲它們是使用不同庫的不同語言。這些請求必須結構正確。如果你看看NOAA的perl例子,你會發現它涉及更多。我不只是粘貼一段代碼,因爲我們正在談論10行代碼來正確地格式化請求。 – Secesh 2011-05-07 10:06:14
下面是一個類似於你的ruby代碼的perl例子。我沒有打擾所有的天氣參數,因爲掃視產品不支持它們 - 它將全部返回。 – Secesh 2011-05-07 10:40:33