如何在php WSDL中指定端口名

如何在php WSDL中指定端口名,php,soap,wsdl,travelport-api,Php,Soap,Wsdl,Travelport Api,如何在SOAP PHP中选择端口?我正在开发一个以TravelPort为GDS的旅游预订网站。 我刚刚开始研究他们的wsdl,我试图用它们用PHP调用他们的服务器。我做不到。我知道服务器是可以工作的,因为如果我设计一个请求并通过cURL发送,我会得到我期望的响应,但是通过使用和修改它们自己的响应(接受保密协议,然后单击“示例代码”查看),我不会去任何地方 通过查看soapphp模块生成的请求,我认为问题在于它使用了错误的函数。我不认为我可以披露整个WSDL,但这里有一个摘录: <!-- S

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

通过查看soapphp模块生成的请求,我认为问题在于它使用了错误的函数。我不认为我可以披露整个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>
看起来唯一的“功能”是“服务”,但我不知道我会把这些东西放在括号里

我没有其他想法。希望你能帮忙

更新:


我找到了暴露问题的地方。然而,它指的是他们自己的名为PHPWeb服务的模块。我需要用肥皂做同样的事情。我真的需要您的帮助。

加载WSDL后,您应该能够手动设置端点

例如:

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

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

print_r($client->__getfunctions());