0

travelport Service への wcf 呼び出しを試みています.. wsdl ファイルを追加しました。

問題は、エンドポイント アドレスが「https」であり、それを呼び出すときに、URi スキーマが http を想定していると言うことです。Binding を basicHttpBinding から wsHttpBinding に変更しようとしましたが、バインディング タイプが認識されないという別の期待が生じます。

httpスキームで同じURLを試しましたが、そのリクエストはタイムアウトしました。

TravelPort の wcf 呼び出しに関する特定のチュートリアルを提供できる場合は、それが非常に役立ちます..

サンプルコードは次のとおりです(それが役立つ場合:))

PingReq req = new PingReq();

        req.Payload = "Payload";
        req.TraceId = "abcd";
        SystemPingPortTypeClient port = new SystemPingPortTypeClient();

        PingRsp rsp = port.service(req);

よろしく、

4

1 に答える 1

2
    LowFareSearchReq req = new LowFareSearchReq();
    req.TargetBranch = "{EnterBranchCode}";
    req.AuthorizedBy = "test";

    BillingPointOfSaleInfo biPOS = new BillingPointOfSaleInfo();
    biPOS.OriginApplication = "uAPI";
    req.BillingPointOfSaleInfo = biPOS;

    //from LHR to BOM
    SearchAirLeg airLeg = new SearchAirLeg();            
    Airport fromAirPort = new Airport() { Code = "LHR" };
    typeSearchLocation fromTypLoc = new typeSearchLocation(){Item=fromAirPort};
    airLeg.SearchOrigin = new typeSearchLocation[1] { fromTypLoc };
    Airport toAirPort = new Airport() { Code = "BOM" };
    typeSearchLocation toTypLoc = new typeSearchLocation() { Item = toAirPort };
    airLeg.SearchDestination = new typeSearchLocation[1] { toTypLoc };
    typeTimeSpec origDep = new typeTimeSpec() { PreferredTime = "2013-05-24" };
    airLeg.Items = new typeTimeSpec[1] { origDep };


    //from BOM to LHR
    SearchAirLeg returnAirLeg = new SearchAirLeg();
    Airport fromAirPort1 = new Airport() { Code = "BOM" };
    typeSearchLocation fromTypLoc1 = new typeSearchLocation() { Item = fromAirPort1 };
    returnAirLeg.SearchOrigin = new typeSearchLocation[1] { fromTypLoc1 };
    Airport toAirPort1 = new Airport() { Code = "LHR" };
    typeSearchLocation toTypLoc1 = new typeSearchLocation() { Item = toAirPort1 };
    returnAirLeg.SearchDestination = new typeSearchLocation[1] { toTypLoc1 };
    typeTimeSpec destDep = new typeTimeSpec() { PreferredTime = "2013-05-27" };
    returnAirLeg.Items = new typeTimeSpec[1] { destDep };

    req.Items = new object[] { airLeg, returnAirLeg };

    //modifiers
    AirSearchModifiers airSearchMod = new AirSearchModifiers()
    {
      DistanceType = typeDistance.MI,
      IncludeFlightDetails = true,
      PreferNonStop = true,
      MaxSolutions = "300",
      PreferredProviders = new Provider[1] {new Provider(){ Code = "1G" }}              
    };
    AirPricingModifiers airPriceMod = new AirPricingModifiers()
    {
      FiledCurrency = "GBP"
    };
    req.AirSearchModifiers = airSearchMod;
    req.AirPricingModifiers = airPriceMod;
    //passenger details
    SearchPassenger pass1 = new SearchPassenger() { Code = "ADT" };
    SearchPassenger pass2 = new SearchPassenger() { Code = "ADT" };

    req.SearchPassenger = new SearchPassenger[] { pass1, pass2 };


    //reponse
    LowFareSearchRsp res= new LowFareSearchRsp();

    AirLowFareSearchPortTypeClient cli = new AirLowFareSearchPortTypeClient("AirLowFareSearchPort");
    cli.ClientCredentials.UserName.UserName = "Enter User Name";
    cli.ClientCredentials.UserName.Password = "Enter Password";

    res = cli.service(req);

上記のサンプルコードは私にとってはうまくいきます。Exception をキャッチすると、TravelPort 担当者にその理由を尋ねることができるコードが得られる場合があります。資格情報がロックされているなどの簡単なことかもしれません。

于 2013-03-27T11:03:28.417 に答える