私のphp soapclientプロジェクトに問題があります。 これまではsoapリクエストを送信するためにカールを使用していましたが、さまざまな理由からPHPの統合されたsoapクライアントを使用する必要があります。PHP SOAP - 複数のネームスペースを持つクライアント
私の私はCURLを使用(作業)要求がこのように見えた:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:asc="http://asc.ws.ideal.com" xmlns:xsd="http://getserviceeventstatus.info.asc.ws.ideal.com/xsd">
<soap:Header/>
<soap:Body>
<asc:getServiceEventStatus>
<asc:param>
<xsd:info>
<xsd:includePreviousEventsInfo>true</xsd:includePreviousEventsInfo>
<xsd:mainAscReferenceId>16111294</xsd:mainAscReferenceId>
</xsd:info>
<xsd:password>xxx</xsd:password>
<xsd:userId>xxx</xsd:userId>
</asc:param>
</asc:getServiceEventStatus>
</soap:Body>
</soap:Envelope>
私の実際のPHPスクリプトは、そのように見えます...
<?php
error_reporting(E_ALL);
$wsdl = '/services/AscServiceSync?wsdl';
$location = '/services/AscServiceSync.AscServiceSyncHttpSoap11Endpoint/';
$options = array(
'uri'=>'http://schemas.xmlsoap.org/soap/envelope/',
'style'=>SOAP_RPC,
'use'=>SOAP_ENCODED,
'soap_version'=>SOAP_1_1,
'cache_wsdl'=>WSDL_CACHE_NONE,
'connection_timeout'=>15,
'trace'=>true,
'encoding'=>'UTF-8',
'exceptions'=>true,
"location"=>$location
);
$client = new SoapClient($wsdl, $options);
$result = $client->getServiceEventStatus(array('userId' => 'xxx', 'password' => 'xxx', 'mainAscReferenceId' => '16111294'));
var_dump ($result);
print '<br />';
print $result->success;
print '<br />';
?>
サーバーがそのエラーメッセージを返します"param"または "info"のデータがありません
誰かが私を助けてくれるでしょう ありがとうございました!
Fiddler2や他のパケットスニッファを使用して、送信しているものを確認できますか?それはあなたに違いを表示します。 –