【问题标题】:How to specify port name in php WSDL如何在 php WSDL 中指定端口名称
【发布时间】:2012-09-10 16:02:33
【问题描述】:

如何在 SOAP PHP 中选择端口?我正在开发一个以 TravelPort 作为 GDS 的旅行预订网站。 我刚刚开始查看他们的 WSDL,我正在尝试使用它们通过 PHP 调用他们的服务器。我做不到。我知道服务器可以工作,因为如果我制作一个请求并通过 cURL 发送它,我会得到我期望的响应,但是通过使用和调整他们自己的sample code(接受保密协议,然后单击“示例代码”看看),我哪儿也不去。

通过查看 SOAP PHP 模块生成的请求,我认为问题在于它使用了错误的函数。我不认为我可以透露整个 WSDL,但这里有一段摘录:

<!-- Service -->

<service name="AirService">
    <port name="AirRepriceSearchPort"
          binding="tns:AirRepriceSearchBinding">
        <soap:address
                location="http://localhost:8080/kestrel/AirService" />
    </port>

    <port name="AirScheduleSearchPort"
          binding="tns:AirScheduleSearchBinding">
        <soap:address
                location="http://localhost:8080/kestrel/AirService" />
    </port>

    <port name="AirLowFareSearchPort"
          binding="tns:AirLowFareSearchBinding">
        <soap:address
                location="http://localhost:8080/kestrel/AirService" />
    </port>

显然,该脚本始终基于 AirReprice 模块而不是 LowFareSearch 模块生成请求。事实上,如果我编辑 WSDL 并将“AirLowFareSearchPort”作为第一个元素,请求就会起作用。

我尝试了以下方法:

  • 使用$client-&gt;AirLowFareSearchPort($data)指定要执行的操作,但它不是有效的函数;

  • 我通过$client-&gt;__getfunctions()获得了所有功能:

 [0]=>
 string(48) "AirRepriceRsp service(AirRepriceReq $parameters)"
 [1]=>
 string(56) "ScheduleSearchRsp service(ScheduleSearchReq $parameters)"
 [2]=>
 string(54) "LowFareSearchRsp service(LowFareSearchReq $parameters)"
 [3]=>
 string(66) "LowFareSearchAsynchRsp service(LowFareSearchAsynchReq $parameters)"

看起来唯一的“功能”是“服务”。但我不知道我会把这些东西放在括号里的什么地方。

我没有其他想法。希望您能提供帮助!

更新:

我发现this article 暴露了问题。但是,它指的是他们自己的称为 PHP Web Services 的模块。我需要对 SOAP 做同样的事情。我真的需要你的帮助..

【问题讨论】:

    标签: php soap wsdl travelport-api


    【解决方案1】:

    加载 WSDL 后,您应该可以使用 __setLocation 手动设置端点。

    例子:

    $client = new SoapClient('http://localhost/supplied_path?wsdl');
    $client->__setLocation('http://localhost:8080/kestrel/AirService');
    
    print_r($client->__getfunctions());
    

    【讨论】:

      猜你喜欢
      • 2011-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-24
      相关资源
      最近更新 更多