为啥 getLastRequest 不返回任何内容?
Posted
技术标签:
【中文标题】为啥 getLastRequest 不返回任何内容?【英文标题】:why is getLastRequest not returning anything?为什么 getLastRequest 不返回任何内容? 【发布时间】:2012-04-02 07:21:25 【问题描述】:我正在尝试获取 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 转储中得到了肥皂服务器错误。但是 getLastRequest 似乎没有返回任何东西。有什么想法吗?
我也尝试过使用 htmlspecialchars() 和 htmlentities() 没有成功。 . .
【问题讨论】:
你解决过这个问题吗?我还有一种情况,我正在发送参数数组,但 __getLastResponse() 显示没有传递参数的空 SOAP 包装器。 我遇到了同样的问题,没有任何显示。我在页面的源代码中找到了响应(通过浏览器上下文菜单打开它)。 【参考方案1】:getLastRequest()
:
此方法仅在创建 SoapClient 对象且跟踪选项设置为 TRUE 时才有效。
$client = new SoapClient("http://myservice/?WSDL",array("trace"=>1));
在这种情况下对我有用。
【讨论】:
我也有这个问题,而且我确实启用了跟踪,所以这不能解决问题。 是的,我在原始帖子中显示的跟踪设置为 true 时存在问题。【参考方案2】:可能是因为您浏览器中的 XML 没有打印为字符串。 如果是这样,请尝试以下操作:
echo "REQUEST:\n" . htmlentities($client->__getLastRequest()) . "\n";
【讨论】:
没有帮助我,但值得检查/意识到这是一种可能性。【参考方案3】:我知道这已经晚了,但是......
您可能从未真正提出请求。如果 php 未能创建 SOAP 调用,您将永远无法到达发送 XML 请求的地步。检查您的错误日志以了解 PHP SOAP 错误。
【讨论】:
以上是关于为啥 getLastRequest 不返回任何内容?的主要内容,如果未能解决你的问题,请参考以下文章
为啥 java.sql.ResultSet 的“getFloat(column)”方法不返回任何内容,而其他方法则返回?