为什么getLastRequest没有返回任何东西?

时间:2012-03-16 18:18:22

标签: php xml soap

我正在尝试获取XML请求:

$cgProxy = new SoapClient($WSDL_URL,array('trace' => 1));

try {
        $result = $cgProxy->OrderCreate($cgOrder);

} catch (SoapFault $exc) {
        var_dump($exc);
        echo "Request:\n" . $cgProxy->__getLastRequest(), "\n";
        echo "Response:\n" . $cgProxy->__getLastResponse() . "\n";
}

有了这个,我从$ exc转储中得到了soap服务器错误。但getLastRequest似乎没有返回任何东西。有什么想法吗?

我也尝试过使用htmlspecialchars()和htmlentities()但没有成功。 。

3 个答案:

答案 0 :(得分:20)

getLastRequest()

此方法仅在创建SoapClient对象且trace选项设置为TRUE时才有效。

$client = new SoapClient("http://myservice/?WSDL",array("trace"=>1));

在这种情况下适合我。

答案 1 :(得分:6)

可能是因为浏览器中的XML不能以字符串形式打印。 如果是这样,尝试这样的事情:

echo "REQUEST:\n" . htmlentities($client->__getLastRequest()) . "\n";

答案 2 :(得分:2)

我知道这已经晚了,但是......

你可能永远不会真正提出要求。如果PHP无法创建SOAP调用,您将永远无法达到发送XML请求的程度。检查错误日志中的PHP SOAP错误。