这是我的xml文件
<OTA_HotelDestinationsRQ Version="1.0">
<POS>
<Source>
<UniqueId Id="login:pass" />
</Source>
</POS>
<DestinationInformation LanguageCode="EN" />
</OTA_HotelDestinationsRQ>
我已将此xml转换为数组,并在php中编写了客户端请求。它将Invalid XML作为响应。请你帮助我好吗。
$ary=array(
"OTA_HotelDestinationsRQ"=>array("Version"=>"1.0"),
"POS"=>array(
"Source"=>array(
"UniqueId"=>array("Id"=>"login:pass")
)
),
"DestinationInformation"=>array("Version"=>"EN")
);
$wsdl="http://acceptance.travelstreet.com/hotelsv3/components/Hotels_DestinationsWS.cfc?wsdl";
$client=new SoapClient($wsdl,array('trace' => 1));
try
{
$res=$client->OTA_HotelDestinationsRQ($ary);
//$res=$client->__call("OTA_HotelDestinationsRQ",array($ary));
}
catch (SoapFault $Exception)
{
echo 'SoapFault Exception';
}
echo $res;
?>
答案 0 :(得分:2)
您是否在请求的顶部定义了XML文档类型?
我还建议以更面向对象的方式生成SOAP请求。您可以将soap网址插入apigenerator.com并使用它生成的SOAPClient
类。
然后,您可以使用Web服务中的所有参数创建一个请求类,如:
class mySOAPRequest
{
public function makeRequestObject($param1, $param2)
{
$this->param1 = $param1;
$this->param2 = $param2;
}
}
要生成实际的soap请求,您将生成一个新的mySOAPRequest对象,并将其从API Generator传递到该类的新对象,如:
$mySoapConnection = new SoapClientFromAPIGenerator();
$mySoapRequest = new mySoapRequest();
$mySoapConnection->whateverSOAPMethod($mySoapReqest->makeRequestObject($param1, $param2));
这就是我通常构建SOAP请求的方式