2012-04-04 8 views
0

「リクエストをデシリアライズできません」というエラーなしで.NET WebサービスへのSOAP Webサービス呼び出しを行う方法私はこのようになりますサンプル要求とSOAP WebサービスへのPHPからのWebサービスの呼び出し作るしようとしています

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.somedomain.com/"> 
    <soapenv:Header/> 
    <soapenv:Body> 
     <ws:SearchMarketplaceSku> 
     <ws:Request> 
      <ws:Security> 
       <ws:PartnerKey>[suppressed]</ws:PartnerKey> 
       <ws:Password>[suppressed]</ws:Password> 
      </ws:Security> 
      <ws:AvailableOnDate>2012-04-03T00:00:00</ws:AvailableOnDate> 
      <ws:IncludeStateDetails>true</ws:IncludeStateDetails> 
      <ws:State>CA</ws:State> 
     </ws:Request> 
     </ws:SearchMarketplaceSku> 
    </soapenv:Body> 
</soapenv:Envelope> 

を使用しているPHPのコードは次のとおりです。

$soapClient = new SoapClient($wsdlUrl); 
$ap_param = array('PartnerKey' => $PartnerKey, 'Password' => $metapackPassword, 'AvailableOnDate' => '2012-04-03T00:00:00','IncludeStateDetails'=>true, 'State'=>'CA'); 
$info = $soapClient->__call("SearchMarketplaceSku", $ap_param); 

ウェブサービスコールの結果、「要求が正しく指定されていません:サーバーは要求をデシリアライズできません」というエラーが発生しますか?何が問題ですか? $ ap_param配列には、XMLに対応したすべてのネストされたノードが含まれている必要がありますか? "WSDL"モードを使用してこの呼び出しを行う簡単な方法はありますか?

あなたの助けのおかげでは

答えて

2

PartnerKeyとパスワードはキーのセキュリティの下で配列にしておく必要があります:

$ap_param = array(
'Security' => array(
    'PartnerKey' => $PartnerKey, 
    'Password' => $metapackPassword 
), 
'AvailableOnDate' => '2012-04-03T00:00:00', 
'IncludeStateDetails'=>true, 'State'=>'CA' 
); 
関連する問題