2017-06-07 217 views
1

我正在C#中的asp.net webservices中使用saber工作,我正在嘗試調用wwebservice airlowfaresearch並且沒關係,但我會盡力讓討價還價查找器的最大備用日期,我用這個:webservices.sabre.com/wsdl/sabreXML1.0.00/tpf/OTA_AirLowFareSearchLLS1.13.1RQ.wsdl ,改變了行動:BargainFinderMax_ADRQ,這是我的要求:訪問WSDL文件的SOAP客戶端

<?xml version="1.0" encoding="UTF-8"?> 
<OTA_AirLowFareSearchRQ AltLangID="en-us" PrimaryLangID="en-us" SequenceNmbr="1" Version="3.1.0" Target="Test" TimeStamp="0001-01-01T12:00:00" EchoToken="String" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <POS> 
     <Source PseudoCityCode="X0JA"/> 
    </POS> 
    <OriginDestinationInformation RPH="1"> 
     <DepartureDateTime>2017-06-07</DepartureDateTime> 
     <OriginLocation LocationCode="LIM"/> 
     <DestinationLocation LocationCode="AQP"/> 
     <TPA_Extensions> 
      <SegmentType Code="O"/> 
      <WithoutAvail/> 
     </TPA_Extensions> 
    </OriginDestinationInformation> 
    <OriginDestinationInformation RPH="2"> 
     <DepartureDateTime>2017-06-10</DepartureDateTime> 
     <OriginLocation LocationCode="AQP"/> 
     <DestinationLocation LocationCode="LIM"/> 
     <TPA_Extensions> 
      <SegmentType Code="O"/> 
      <WithoutAvail/> 
     </TPA_Extensions> 
    </OriginDestinationInformation> 
    <TravelPreferences MaxStopsQuantity="2"> 
     <CabinPref RPH="1" Code="Y"/> 
     <CabinPref RPH="2" Code="Y"/> 
     <TPA_Extensions> 
      <ExcludeVendorPref Code="2I"/> 
      <ExcludeVendorPref Code="UA"/> 
      <ExcludeVendorPref Code="IB"/> 
      <NumTrips Number="19"/> 
     </TPA_Extensions> 
    </TravelPreferences> 
    <TravelerInformation> 
     <PassengerTypeQuantity Code="ADT" Quantity="1"/> 
     <TPA_Extensions/> 
    </TravelerInformation> 
    <PriceRequestInformation CurrencyCode="USD"> 
     <TPA_Extensions> 
      <FareCalc> 
       <FareBasis WithFareCalc="true"/> 
      </FareCalc> 
      <Priority> 
       <Price Priority="1"/> 
       <DirectFlights Priority="2"/> 
       <Time Priority="3"/> 
       <Vendor Priority="4"/> 
      </Priority> 
     </TPA_Extensions> 
    </PriceRequestInformation> 
    <TPA_Extensions> 
     <IntelliSellTransaction> 
      <RequestType Name="AD3"/> 
     </IntelliSellTransaction> 
    </TPA_Extensions> 
</OTA_AirLowFareSearchRQ> 

也沒有找到,在響應中,對象oAirLowFareSearchRS

oAirLowFareSearchRS = oAirLowFareSearchRQService.OTA_AirLowFareSearchRQ(oAirLowFareSearchRQ) 

我得到這個錯誤:

Object reference not set to an instance of an object.

和XML響應僅此:

<?xml version="1.0" encoding="UTF-8"?> 
<OTA_AirLowFareSearchRS xsi:nil="true" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/> 

是什麼這個問題的原因是什麼?

回答

1

下面是示例工作BFM_AD請求你:

<soapenv:Body> 
    <OTA_AirLowFareSearchRQ AvailableFlightsOnly="true" ResponseType="OTA" ResponseVersion="3.0.0" Version="3.0.0" xmlns="http://www.opentravel.org/OTA/2003/05"> 
     <POS> 
      <Source PseudoCityCode="***"> 
       <RequestorID ID="1" Type="1"> 
        <CompanyName Code="TN"/> 
       </RequestorID> 
      </Source> 
     </POS> 
     <OriginDestinationInformation RPH="1"> 
      <DepartureDateTime>2017-06-15T00:00:00</DepartureDateTime> 
      <DepartureWindow>00002359</DepartureWindow> 
      <OriginLocation LocationCode="LIM" LocationType="A"/> 
      <DestinationLocation LocationCode="AQP" LocationType="A"/> 
      <TPA_Extensions> 
       <SegmentType Code="O"/> 
      </TPA_Extensions> 
     </OriginDestinationInformation> 
     <OriginDestinationInformation RPH="2"> 
      <DepartureDateTime>2017-06-18T00:00:00</DepartureDateTime> 
      <DepartureWindow>00002359</DepartureWindow> 
      <OriginLocation LocationCode="AQP" LocationType="A"/> 
      <DestinationLocation LocationCode="LIM" LocationType="A"/> 
      <TPA_Extensions> 
       <SegmentType Code="O"/> 
      </TPA_Extensions> 
     </OriginDestinationInformation> 
     <TravelPreferences ETicketDesired="true" ValidInterlineTicket="true"> 
      <TPA_Extensions> 
       <TripType Value="Return"/> 
       <FlightStopsAsConnections Ind="true"/> 
       <ExcludeCallDirectCarriers Enabled="true"/> 
      </TPA_Extensions> 
      <Baggage Description="true" RequestType="A"/> 
     </TravelPreferences> 
     <TravelerInfoSummary> 
      <SeatsRequested>1</SeatsRequested> 
      <AirTravelerAvail> 
       <PassengerTypeQuantity Code="ADT" Quantity="1"/> 
      </AirTravelerAvail> 
      <PriceRequestInformation CurrencyCode="TRY" NegotiatedFaresOnly="false"> 
       <TPA_Extensions> 
        <BrandedFareIndicators MultipleBrandedFares="true"/> 
       </TPA_Extensions> 
      </PriceRequestInformation> 
     </TravelerInfoSummary> 
     <TPA_Extensions> 
      <IntelliSellTransaction> 
       <RequestType Name="AD3"/> 
      </IntelliSellTransaction> 
     </TPA_Extensions> 
    </OTA_AirLowFareSearchRQ> 
</soapenv:Body> 

我建議你從工作的要求,得到成功響應啓動後,你應該專注您的需求,該請求。

+0

感謝您的回答,但我知道應該是請求,但我希望它出來這樣,但在C#中,我不知道該怎麼做,因爲我什麼都沒有放回 –

+0

讓我明白,你正在使用.NET wsdl生成的請求模型類,因此您無法使用http客戶端進行純XML SOAP請求? –