如何打印SOAP请求?

时间:2012-10-13 17:52:10

标签: php api debugging soap

我正在尝试发送SOAP请求但收到错误告诉我某些参数无效。这是代码:

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

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

以下是错误消息:

stdClass Object
(
    [CheckDomainAvailabilityResult] => stdClass Object
        (
            [ResultCode] => 201
            [ResultMsg] => Authentication Failed: Invalid Authentication Parameters
            [TxID] => xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
            [AvailabilityStatus] => 3
            [AvailabilityStatusDescr] => ErrorOccurred
            [LaunchPhase] => GA
            [DropDate] => 
            [BackOrderAvailable] => 
        )

)

我希望看到请求发送到服务器以确保它的格式良好。

以下是需要格式化的方法:

<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>

如何打印已发送到服务器的请求?

我已经尝试过:

echo $client->__getLastRequest();

但即使在页面的源代码中,我什么都没得到。

由于

1 个答案:

答案 0 :(得分:4)

添加跟踪选项:

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

然后__getLastRequest()应该有用。