如何从SOAP XML API请求答案?

时间:2012-10-11 16:30:36

标签: php xml api soap

我以前从未使用过SOAP XML api。

我在SO上阅读了几个类似的问题,但我无法让它发挥作用。

这是一个简单的请求:

<soap12:Envelope xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
xmlns:xsd=”http://www.w3.org/2001/XMLSchema” xmlns:soap12=”http://www.w3.org/2003/05/
soap-envelope”>
<soap12:Body>
<CheckDomainAvailability xmlns=”https://live.domainbox.net/”>
<AuthenticationParameters>
<Reseller>myreseller</Reseller>
<Username>myuser</Username>
<Password>mypassword</Password>
</AuthenticationParameters>
<CommandParameters>
<DomainName>checkadomain.co</DomainName>
<LaunchPhase>GA</LaunchPhase>
</CommandParameters>
</CheckDomainAvailability>
</soap12:Body>
</soap12:Envelope>

我已与他们联系,但他们没有提供PHP API。

我想使用PHP内置的SoapClient类。

问题是: 如何发送请求并打印答案?

2 个答案:

答案 0 :(得分:7)

您的WSDL看起来位于https://live.domainbox.net/?WSDL

以下是使用本机PHP SoapClient的示例。

$client = new SoapClient('https://live.domainbox.net/?WSDL');

// populate the inputs....
$params = array(
    'AuthenticationParameters' => array(
        'Reseller' => '',
        'Username' => '',
        'Password' => ''
    ),
    'CommandParameters' => array(
        'DomainName' => '',
        'LaunchPhase' => ''
    )
);

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

print_r($result);

答案 1 :(得分:2)

为了实现这一点,我需要更改第一行以获得正确版本的soap到1.2。 也是之前的评论

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

// populate the inputs....
    $params = array(
       'AuthenticationParameters' => array(
          'Reseller' => '',
          'Username' => '',
          'Password' => ''
        ),
        'CommandParameters' => array(
            'DomainName' => '',
            'LaunchPhase' => ''
        )
    );

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

print_r($result);