私は、SOAPとWebサービスへの新たなんだ、とPHPを使用してサプライヤーのWSDL SOAPプロバイダに接続しようとしています。私は正常にAPIに接続し、メソッドのリストをプルダウンすることができました。エラーのWSDL SOAPメソッドを呼び出す - Microsoft.Web.Services.SoapFormatException
Microsoft.Web.Services.SoapFormatException:入力があるため、有効なSOAPメッセージではありませんでした私は機能の一つに、基本的なコールを作るしようとすると、しかし、私はこのエラーを取得していますと、バックサーバから返されましたEnvelopeまたは間違った名前空間のいずれかがあります。これはhttp://www.w3.org/2003/05/soap-envelopeです。 Microsoft.Web.Services.WebServicesExtension.BeforeDeserializeServerでMicrosoft.Web.Services.SoapEnvelope.Load(ストリームstream)(SOAPMessageのメッセージ)
でMicrosoft.Web.Services.SoapEnvelope.PostLoad()でこれは私のウェブでありますサービスコール:
$soapConnection = new SoapClient("http://webapi.testsupplier.com/gvitawapi.asmx?WSDL",array('soap_version' => SOAP_1_2, 'uri' => "http://webapi.testsupplier.com/"));
var_dump($soapConnection->GetAllTestDataXML());
これはサプライヤのマニュアルからの応答XMLです。
POST /gvitawapi.asmx HTTP/1.1
Host: webapi.testsupplier.com
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<GetAllTestDataXML xmlns="http://webapi.testsupplier.com/" />
</soap12:Body>
</soap12:Envelope>
あなたが提供できるすべての考えは大変ありがとうございます。私はこれで何かをしなければならないか分かりません。
あなたがこのようなWebサービスのためのあなたの呼び出しで一緒にパラメータを渡したい場合はさらに、それはかなりのようにまっすぐ進む私が期待した通りではなかったです。私はパラメータが配列の中で渡されると仮定しました。その中の値は '$ soapConnection-> GetAllTestDataXML(array( 'id' => 5678));' のようになります。 $ param = array( 'id' => 5678); ' '$ soapConnection-> GetAllTestDataXML(array(' parameters '=> $ param));' – theninjasquad