我刚才注意到,我将不得不在不久的将来与SOAP API进行交互。到目前为止,我只使用过REST API,而不是SOAP API。
我一直在阅读有关SOAP API的内容,到目前为止,我(很可能是错误的)理解如下:
我有两个问题:
(如果上面链接的示例SOAP API不是很好,那么我愿意学习如何将SOAP与任何其他可用的示例SOAP API一起使用。)
编辑:pawelwaw,我编写了以下示例代码来测试所有内容,但似乎无论我在CityName
操作中使用GetWeather
的值是什么,我没有得到任何数据。我的理解是不正确的,还是SOAP API不是很好?
<?php
$client = new SoapClient('http://www.webservicex.com/globalweather.asmx?wsdl');
echo '<h2>Types:</h2>';
echo '<pre>';
var_dump($client->__getTypes());
echo '</pre>';
echo '<h2>Functions:</h2>';
echo '<pre>';
var_dump($client->__getFunctions());
echo '</pre>';
echo '<h2>GetCitiesByCountry:</h2>';
echo '<pre>';
echo htmlentities($client->GetCitiesByCountry([
'CountryName' => 'Poland'
])->GetCitiesByCountryResult);
echo '</pre>';
echo '<h2>GetWeather:</h2>';
echo '<pre>';
var_dump($client->GetWeather([
'CityName' => 'Krakow',
'CountryName' => 'Poland'
]));
echo '</pre>';
答案 0 :(得分:1)
我经常使用SOAP api。 并为此服务 您可以使用此示例代码获取Country of Country
<?php
$api = new SoapClient ( 'http://www.webservicex.com/globalweather.asmx?WSDL' );
$res = $api->GetCitiesByCountry(array( 'CountryName' =>"Poland"));
var_dump($res);
?>
然后你就可以运行这个api的第二种方法来获取天气 http://www.webservicex.com/globalweather.asmx?op=GetWeather
我希望,这有帮助。
似乎函数GetWeather(http://www.webservicex.com/globalweather.asmx?op=GetWeather)无法正常工作。当我在现场手动填充值时,没有对数据的响应,但是对于函数GetCitiesByCountry(http://www.webservicex.com/globalweather.asmx?op=GetCitiesByCountry)返回数据。 我对API没有多少经验,但是这应该有效,在我看来这个函数在SOAP中存在问题,因为也不能通过http工作。 我通过REST测试它,并且此功能不符合规范。