试图拨打wcf电话给travelport Service ..添加了他们的wsdl文件。
问题是端点地址是"https",当调用它时,它说URi模式期望http ..试图将绑定从basicHttpBinding更改为wsHttpBinding,但它引发了另一个无法识别的绑定类型的期望。
已尝试使用http方案的相同Url,但请求超时。
如果可以提供任何关于TravelPort wcf call的具体教程,那将是一个很大的帮助。
示例代码如下(如果有帮助的话:)
PingReq req = new PingReq();
req.Payload = "Payload";
req.TraceId = "abcd";
SystemPingPortTypeClient port = new SystemPingPortTypeClient();
PingRsp rsp = port.service(req);
认为,
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人员为什么会发生。可能是简单的事情,比如你的证书被锁定了。