Php 如何更改随SOAP请求发送的命名空间?

Php 如何更改随SOAP请求发送的命名空间?,php,api,namespaces,soap-client,Php,Api,Namespaces,Soap Client,关于这个问题: 我让这个PHP脚本发送带有必填字段的请求: $client = new SoapClient('https://live.domainbox.net/?WSDL'); $params = array( 'AuthenticationParameters' => array( 'Reseller' => 'resellername', 'Username' => 'myusername', 'Password

关于这个问题:

我让这个PHP脚本发送带有必填字段的请求:

$client = new SoapClient('https://live.domainbox.net/?WSDL');
$params = array(
    'AuthenticationParameters' => array(
        'Reseller' => 'resellername',
        'Username' => 'myusername',
        'Password' => 'mypassword'
    ),
    'CommandParameters' => array(
        'DomainName' => 'mydomain.com',
        'LaunchPhase' => 'GA'
    )
);

$result = $client->CheckDomainAvailability($params);

print_r($result);
我收到以下错误消息:

致命错误:未捕获的SoapFault异常:[soap:VersionMismatch]

可能的SOAP版本不匹配:信封命名空间 出乎意料

期待。在里面 /home/nosa/public_html/dev/check-domain-availability.php:20堆栈 跟踪:#0 /home/nosa/public_html/dev/check domain availability.php(20):

SoapClient->_调用('CheckDomainAvi…',数组)#1 /home/nosa/public_html/dev/check domain availability.php(20): SoapClient->CheckDomainAvailability(数组)#2{main}抛出 /home/nosa/public_html/dev/check-domain-availability.php,第20行

我删除并重新编译了apache,以包括使用WHM/cPanel提供的最新SOAP版本

我的问题是:
如何发送正确的信封名称空间?

在构建soap_客户端对象时,可以传递选项的数组,默认情况下,根据php文档,版本为1.1

您的错误似乎指出服务可能是SOAP1.2,因此您需要将其设置为1.2

$client = new SoapClient('https://live.domainbox.net/?WSDL', array('soap_version' => SOAP_1_2));

试试看

谢谢Mathieu给出的这个有用的答案,它起作用了。我的第一个SOAP请求!:)