0

SoapClient に問題があります。Web サービスへのリクエストには、@、$、' などの特殊な記号がいくつかあります。$params配列に追加すると、SoapClient によってスラッシュが追加されます。しかし、リモート Web サービスは win-platform で動作し、スラッシュを削除せず、エラーを返します。

4

1 に答える 1

0

コードを変更するのではなく、彼らが最後に修正する必要がある問題のように見えます...

上記が何らかの理由で不可能な場合は、XML リクエストを作成して手動で送信できますが、これは悪い習慣です。もう 1 つの方法は、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 に答える