2016-10-21 3 views
0

Я пытаюсь работать с новой службой GetHotelDescriptiveInfo и создал объект заголовка сообщения, так как я создал другие запросы v1 в прошлом без проблем, но для этой службы, когда Я выполняю его. Я получаю следующий ответ об ошибке:GetHotelDescriptiveInfo Мыло - ошибка «Ошибка/ошибка» SabreHeader/Service

<ns4:ApplicationResults xmlns:ns4="http://services.sabre.com/STL_Payload/v02_01" status="NotProcessed"> 
    <ns4:Error type="Validation" timeStamp="2016-10-21T08:15:07.497-05:00"> 
     <ns4:SystemSpecificResults> 
      <ns4:Message code="ERR.NGHP-CONTENT.CLIENT.INVALID_REQUEST"> 
       SabreHeader/Service missing or incomplete 
      </ns4:Message> 
     </ns4:SystemSpecificResults> 
    </ns4:Error> 
</ns4:ApplicationResults> 

Вот код, который использовался для создания объекта MessageHeader;

MessageHeader header = new MessageHeader(); 
header.ConversationId = this.Session.ConversationId; 

From from = new From(); 
PartyId fromPartyId = new PartyId(); 
fromPartyId.Value = "WebServiceClient"; 
PartyId[] fromPartyIdArr = new PartyId[1]; 
fromPartyIdArr[0] = fromPartyId; 
from.PartyId = fromPartyIdArr; 
header.From = from; 

To to = new To(); 
PartyId toPartyId = new PartyId(); 
toPartyId.Value = "WebServiceSupplier"; 
PartyId[] toPartyIdArr = new PartyId[1]; 
toPartyIdArr[0] = toPartyId; 
to.PartyId = toPartyIdArr; 
header.To = to; 

header.CPAId = this.Session.PCC; 
header.Action = "GetHotelDescriptiveInfoRQ"; 
header.Service = new Service(); 
header.Service.Value = "GetHotelDescriptiveInfoRQ"; 

MessageData msgData = new MessageData(); 
msgData.MessageId = String.Format("mid:{0}@clientofsabre.com1", DateTime.Now.ToString("yyyyMMDD-HHmmss-ffff")); 
msgData.Timestamp = String.Format("{0}Z", DateTime.UtcNow.ToString("s")); 
header.MessageData = msgData; 

Я не уверен, что мне не хватает в заголовке. Независимо от того, является ли это частью информации или у меня неверно значение службы. Я пробовал многочисленные вариации стоимости услуги без успеха. Кто-нибудь сталкивался с этой ошибкой раньше?

ОБНОВЛЕНИЕ:

Ниже приведен пример сгенерированного XML, чувствительные данные в масках.

<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmln s:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <soap:Header> 
     <MessageHeader xmlns="http://www.ebxml.org/namespaces/messageHeader"> 
      <From> 
       <PartyId>WebServiceClient</PartyId> 
      </From> 
      <To> 
       <PartyId>WebServiceSupplier</Party Id> 
      </To> 
      <CPAId>XXXX</CPAId> 
      <ConversationId>XXXXXXXXXXXXXXXX</ConversationId> 
      <Service>GetHotelDescriptiveInfoRQ</Service> 
      <Action>GetHotelDescriptiveInfoRQ</Action> 
      <MessageData> 
       <MessageId>mid:201611DD-0934 [email protected]</MessageId> 
       <Timestamp>2016-11-21T14:3 4:50Z</Timestamp> 
      </MessageData> 
     </MessageHeader> 
     <Security xmlns="http://schemas.xmlsoap.org/ws/2002/12/secext"> 
      <BinarySecurityToken>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</BinarySecurityToken> 
     </Security> 
    </soap:Header> 
    <soap:Body> 
     <GetHotelDescriptiveInfoRQ xmlns="http://services.sabre.com/hotel/descriptiveinfo/v1"> 
      <HotelRefs> 
       <HotelRef HotelCode="2355" /> 
       <HotelRef HotelCode="2356" /> 
      </HotelRefs> 
      <DescriptiveInfoRef> 
       <PropertyInfo>true</PropertyInfo> 
       <LocationInfo>true</LocationInfo> 
       <Amenities>true</Amenities> 
       <Airports>true</Airports> 
       <AcceptedCreditCards>false</AcceptedCreditCards> 
      </DescriptiveInfoRef> 
     </GetHotelDescriptiveInfoRQ> 
    </soap:Body> 
</soap:Envelope> 

UPDATE: Я был в состоянии получить услугу на работу с помощью реализации REST, но я до сих пор любопытно об ошибке относительно реализации SOAP.

Благодаря

+0

Можете ли вы поделиться сгенерированный XML из вашего кода? – fcarreno

+0

обновленное исходное сообщение с образцом xml –

ответ

1

Я решить эту ошибку просто добавив параметр версии в основной запрос тега в теле: версия = «1.0.0».

До:

<GetHotelDescriptiveInfoRQ xmlns="http://services.sabre.com/hotel/descriptiveinfo/v1"> 

После:

<GetHotelDescriptiveInfoRQ version="1.0.0" xmlns="http://services.sabre.com/hotel/descriptiveinfo/v1">