我正在尝试获取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()但没有成功。 。
答案 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错误。