Как отправить запрос XML с использованием мыла в PHP? - PullRequest
3 голосов
/ 30 июня 2011

Я работаю над новым проектом, для этого проекта я должен использовать SOAP.Я новичок в этом SOAP.Я красный моя проектная документация.В этой документации есть WSDL и XML-запрос.С помощью WSDL и XML-запроса, как я могу отправить XML-запрос.Ниже я пишу WSDL и XML-запрос.Пожалуйста, помогите мне.

Спасибо.


WSDL:

http://acceptance.travelstreet.com/hotelsv3/components/hotels_ws.cfc?wsdl

Запрос XML:

<?xml version="1.0" encoding="utf-8"?>
<OTA_HotelAvailRQ Version="1.0">
   <POS>
    <Source>
     <UniqueId Id="username:password" />
    </Source>
   </POS>
   <AvailRequestSegments>
    <AvailRequestSegment>
     <StayDateRange End="2011-08-15" Start="2011-08-14" />
     <RoomStayCandidates>
      <RoomStayCandidate Quantity="1">
       <GuestCounts>
        <GuestCount AgeQualifyingCode="10" Count="1" />
       </GuestCounts>
      </RoomStayCandidate>
     </RoomStayCandidates>
     <HotelSearchCriteria>
      <Criterion>
       <HotelRef Destination="East London, South Africa" CityCode="" CountryCode="" HotelName="" MinHotelRating="1"/>
       <SearchCurrency>EUR</SearchCurrency>
       <AdditionalInfo Value="1" />
       <Language>EN</Language>
      </Criterion>
     </HotelSearchCriteria>
    </AvailRequestSegment>
   </AvailRequestSegments>
  </OTA_HotelAvailRQ>

Ответы [ 2 ]

9 голосов
/ 30 июня 2011

Я предлагаю вам прочитать о PHP SoapClient .В руководстве по PHP есть много хороших примеров.

Для начала создайте объект:

$client = new SoapClient('http://www.example.com/end_point.wsdl');

Затем вызовите метод:

$result = $client->SomeFunction($data);

, гдеSomeFunction - это имя метода, которое вы хотите вызвать в службе, а $ data - это массив PHP, представляющий структуру данных XML, которую вы хотите отправить.

Надеюсь, это поможет.

[EDIT] Просто для пояснения в свете дальнейших вопросов ОП:

Вам не нужно создавать реальный код XML при использовании PHP SOAPClient.Вам нужно поместить данные в массив PHP, и SOAPClient преобразует их в XML для вас.Ключи массива должны быть названы для имен элементов XML, а значения массива являются значениями элементов.Используйте вложенные массивы для вложенных элементов XML.

1 голос
/ 15 января 2013

Для атрибутов вы должны вызывать SoapVar с XSD_ANYXML http://php.net

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