2

我尝试从http://api.mouzenidis-travel.com/search/ServiceMainSearch.svc?Wsdl获取结果

有一些获取数据的方法:

  1. GetCountries // 获取可用的国家数据
  2. GetCityDeparture(int countryID) //获取可用的出发城市数据
  3. GetFilter(int countryId, List leaveCityId) // 获取其他过滤器

// 我的 PHP 代码:

$client = new SoapClient(" http://api.mouzenidis-travel.com/search/ServiceMainSearch.svc?Wsdl ");

$countryList = $client->GetCountries(); //下面的结果

[0] => stdClass Object
    (
        [Code] => GR
        [ID] => 29
        [Name] => ГрециÑ
        [NameLat] => Greece
    )

[1] => stdClass Object
    (
        [Code] => CZ
        [ID] => 6240
        [Name] => ЧехиÑ
        [NameLat] => Czech Republic
    )

$cityDepObj = $client->GetCityDeparture(array('countryID'=>29));

[0] => stdClass Object
(
    [Code] => MOW
    [GroupName] => РоÑÑиÑ
    [GroupNameLat] => РоÑÑиÑ
    [GroupOrder] => 4
    [ID] => 1
    [Name] =>  МоÑква
    [NameLat] => Moscow
    [CountryID] => 460
    [IsDeparture] => 1
    [RegionID] => 0
)

[1] => stdClass Object
(
    [Code] => 
    [GroupName] => РоÑÑиÑ
    [GroupNameLat] => РоÑÑиÑ
    [GroupOrder] => 4
    [ID] => 299
    [Name] => ÐрхангельÑк
    [NameLat] => Arkhangelsk
    [CountryID] => 460
    [IsDeparture] => 1
    [RegionID] => 0
)

. . .

$client->GetFilter(array(29,array(1)));

Fatal error: Uncaught SoapFault exception: [s:Client] No connections available ...

我写信给 Mouzendinis 技术支持,没有结果。

是什么让我错了?

4

3 回答 3

1

在 C# 中,此方法需要字段“Country” int,而不是 int 数组。此外,其他字段必须初始化为空数组或null. 最后一个字段是导致过滤器更新的字典。例如:如果您更改了出发城市,您应该将该字段设置为DictionaryEnum.CityDeparture

于 2014-06-03T09:20:57.567 回答
0

您能否查看他们的 API 文档并检查传递给 GetFilter 方法所需的参数。

于 2013-11-28T06:15:22.670 回答
0

正如你所做$client->GetCityDeparture(array('countryID'=>29));的那样,你试过了$client->GetFilter(array('countryId'=>29,'departureCityId'=>array(1)));吗?

否则,请尝试使用 wsdl 到 php 生成器,这将简化您的请求构建和处理响应

于 2013-11-28T09:42:52.883 回答