我在使用SoapClient时遇到了麻烦。
在我对webservice的请求中,有一些特殊符号,如@,$,'等。
当我将其添加到$params
数组时,SoapClient会向其添加斜杠。但远程webservice在win-platform上工作,不会删除斜杠并返回错误。
答案 0 :(得分: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'));