2013-03-21 107 views
0

尝试对travelport Service进行wcf调用。已添加他们的wsdl文件。TravelPort WCF呼叫问题

问题是端点地址是“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); 

问候,

回答

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

上面的示例代码为我工作。当你赶上例外情况时,你可能会得到一些代码,然后你可以向TravelPort伙伴们询问为什么那么受欢迎。这可能很简单,就像您的凭证被锁定一样。

+0

谢谢你的回答。尚未测试它,因为Travelport集成暂时被推迟..但是,谢谢你的时间:) – 2013-04-08 10:52:24

+0

非常感谢!我遍历整个互联网试图使我的请求工作 - 然后它似乎我使用了一个错误的URL。 Travelport的uAPI测试实用程序+ Fiddler2确实帮助我。 – 2013-06-06 12:16:56

+0

@ArmanBimatov很高兴它帮助你.. – 2013-06-06 15:11:22