0

我在使用 SoapClient 时遇到问题。在我对 web 服务的请求中,有一些特殊符号,如 @、$、' 等。当我将它添加到$params数组时,SoapClient 会向它添加斜杠。但是远程 web 服务在 win 平台上工作,不删除斜杠并返回错误。

4

1 回答 1

0

看起来他们需要最终解决的问题,而不是您更改代码...

如果由于某种原因无法执行上述操作,您可以构建 XML 请求并手动发送,但这是一种不好的做法。另一种方法是使用 SoapClient 的替代方法,例如http://sourceforge.net/projects/nusoap(这个库使用起来非常简单)。不是 100% 确定它会自动转义特殊符号,但它不会自行转义“<”和“>”,所以我认为在你的情况下值得一试。

或者我也会尝试在 SoapClient 中启用强制 UTF-8 转换,看看是否会改变:

$client = new SoapClient('http://foobar.com/webservice.asmx?WSDL', array('trace' => 1, 'encoding'=>' UTF-8'));
于 2012-10-01T08:39:29.330 回答