Неправильная XML-ошибка в мыльном ответе? - PullRequest
0 голосов
/ 05 июля 2011

Это мой xml файл

 <OTA_HotelDestinationsRQ Version="1.0">
       <POS>
        <Source>
            <UniqueId Id="login:pass" />
        </Source>
       </POS>
      <DestinationInformation LanguageCode="EN" />
</OTA_HotelDestinationsRQ>

Я преобразовал этот xml в массив и написал запрос клиента в php. Это дает неверный 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;
?>

1 Ответ

2 голосов
/ 05 июля 2011

Есть ли у вас XML-тип документа, определенный в верхней части вашего запроса?

Я бы также предложил генерировать ваш SOAP-запрос более объектно-ориентированным способом.Вы можете подключить свой URL-адрес мыла к apigenerator.com и, используя класс SOAPClient, который он генерирует.

Затем вы можете создать класс запроса со всеми параметрами веб-службы, такими как:

class mySOAPRequest
{
public function makeRequestObject($param1, $param2)
{
$this->param1 = $param1;
$this->param2 = $param2;
}
}

И чтобы сделать настоящий запрос мыла, вы должны сгенерировать новый объект mySOAPRequest и передать его в новый объект класса из API Generator, например:

$mySoapConnection = new SoapClientFromAPIGenerator();
$mySoapRequest = new mySoapRequest();

$mySoapConnection->whateverSOAPMethod($mySoapReqest->makeRequestObject($param1, $param2));

Вот какЯ обычно строю SOAP-запросы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...