如何打印SOAP请求?(How to print the SOAP request?)

我正在尝试发送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();

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

谢谢

I'm trying to send a SOAP request but I receive an error telling me that some parameters are invalid. Here's the code:

$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);

Here's the error message:

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] => ) )

I want to see the request sent to the server to make sure it's well formated.

Here's how it need to be formated:

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

How can I print the request that has been sent to the server?

I already tried:

echo $client->__getLastRequest();

But I got nothing, even in the source code of the page.

Thanks

最满意答案

添加跟踪选项:

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

然后__getLastRequest()应该工作。

Add tracing option:

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

Then __getLastRequest() should work.

更多推荐