TravelPort WCF呼叫问题

时间:2013-03-21 11:25:24

标签: wcf binding

尝试对travelport服务进行wcf调用..添加了他们的wsdl文件。

问题是端点地址是“https”,并且当调用它时,它说URi模式期望http ..试图将Binding从basicHttpBinding更改为wsHttpBinding但是它引发了另一种未被识别的绑定类型。< / p>

尝试了与http方案相同的Url,但请求Times out。

如果可以提供任何特定的TravelPort wcf调用教程,那将是一个很大的好处..

示例代码如下(如果可以有任何帮助:))

PingReq req = new PingReq();

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

        PingRsp rsp = port.service(req);

此致

1 个答案:

答案 0 :(得分:1)

    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的员工询问为什么这些代码也很开心。您的凭据被锁定可能很简单。