php/soap で WSDL Web サービスを使用しようとしています。そして、常に正確な逆シリアル化エラーが発生します。
操作 'Test' の要求メッセージの本文をデシリアライズ中にエラーが発生しました。OperationFormatter で無効なメッセージ本文が検出されました。名前が 'Test' で名前空間が '' のノード タイプ 'Element' が見つかるはずです。名前が 'parameters' および 'namespace' のノード タイプ 'Element' が見つかりました
WcfTestClient ソフトウェアを使用して WSDL ソースをテストすると、問題はなく、望ましい結果が返されます。
SOAP で作成されたリクエスト XML と WcfTestClient ソフトウェアで作成された XML を比較すると、その違いが問題であることがわかります。名前空間と接頭辞に問題があるように見えますが、解決方法がわかりません。または、他の何かが問題を引き起こしている可能性があります。
リクエスト XML はhttp://pastebin.com/eysnG89Fです。
PHPコードが必要な場合のために、これは私が使用しているコードです.
try{
$soap_options = array(
'soap_version' => SOAP_1_1,
'cache_wsdl' => WSDL_CACHE_NONE,
'trace' => TRUE
);
$soap = new SoapClient(
'http://url.to/web/service.svc?wsdl', $soap_options
);
$a = $soap->Test(
array("login" =>
array(
"FirmaId" => 15,
"KullaniciAdi" => "Asdf",
"Parola" => "Xyxy",
)
)
);
var_dump($a);
} catch (Exception $e) {
var_dump($e);
}