可以访问WSDL文件的SOAP客户端

时间:2017-06-07 15:23:14

标签: c# asp.net web-services wsdl sabre

我在saber的webservices中使用C#在ASP.NET中工作,我正在尝试调用wwebservice airlowfaresearch并且没关系,但我会努力让讨价还价最大替换日期,我使用了这个:webservices.sabre.com/wsdl/sabreXML1.0.00/tpf/OTA_AirLowFareSearchLLS1.13.1RQ.wsdl 并更改了:BargainFinderMax_ADRQ的操作,这是我的要求:

<?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) 

我收到此错误:

  

对象引用未设置为对象的实例。

和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 个答案:

答案 0 :(得分: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>

我建议您从工作请求开始,在获得成功回复后,您应该专门针对您的需求提出要求。