C# 使用travelport Universal api时出现以下错误/异常的原因是什么?
我有一个名为HotelClient的定制服务类(该类使用Travelport的通用API),其中一个方法包含以下代码:C# 使用travelport Universal api时出现以下错误/异常的原因是什么?,c#,visual-studio-2015,C#,Visual Studio 2015,我有一个名为HotelClient的定制服务类(该类使用Travelport的通用API),其中一个方法包含以下代码: try { var httpHeaders = Helper.ReturnHttpHeader(); hotelSearchclient.Endpoint.EndpointBehaviors.Add(new HttpHeadersEndpointBehavior(httpHeaders));
try
{
var httpHeaders = Helper.ReturnHttpHeader();
hotelSearchclient.Endpoint.EndpointBehaviors.Add(new HttpHeadersEndpointBehavior(httpHeaders));
hotelSearchAvailabilityResponse = hotelSearchclient.service(hotelSearchAvailabilityRequest);
}
catch (Exception se)
{
hotelSearchclient.Abort();
}
return hotelSearchAvailabilityResponse;
当我运行代码时,我在catch块中发现以下消息:
{"The provided URI scheme 'https' is invalid; expected 'http'.\r\nParameter name: via"}
api的终点是“”
这类错误背后的原因是什么?一般解决方案是什么。谢谢大家。读写文本文件
Read Write textFile
--------------------
public void Loaddetails()
{
List<string> inputList = new List<string>();
string path = @"H:\Desktop\Prj Local\TradeList.txt";
StreamReader strReader = new StreamReader(path);
string line = "";
while ((line = strReader.ReadLine())!= null)
{
if(line.Length>0)
{
inputList.Add(line);
}
}
List<TradeList> ValidList = new List<TradeList>();
List<TradeList> InvalidList = new List<TradeList>();
foreach (string lsttovalid in inputList)
{
DateTime outDate = new DateTime();
DateTime outMatDate = new DateTime();
string[] splist = lsttovalid.Split(',');
if (splist[0]!=null && splist[0].StartsWith("TR")&&System.Text.RegularExpressions.Regex.IsMatch(splist[1],@"^ISIN\d{3}$") &&
DateTime.TryParseExact(splist[2],"MM/dd/yyyy", null, System.Globalization.DateTimeStyles.None, out outDate)&&
DateTime.TryParseExact(splist[3],"MM/dd/yyyy",null,System.Globalization.DateTimeStyles.None, out outMatDate)&&
outMatDate > outDate.AddYears(5)&& splist[4]!=null&& System.Text.RegularExpressions.Regex.IsMatch(splist[5],@"^[a-zA-Z]{3}$"))
{
TradeList vtd = new TradeList();
vtd.TradeId = splist[0];
vtd.TradeType = splist[1];
vtd.TradeDate = Convert.ToDateTime(splist[2]);
vtd.MaturityDate = Convert.ToDateTime(splist[3]);
vtd.Tradevalue = splist[4];
vtd.Currency = splist[5];
vtd.Money = Convert.ToInt32(splist[6]);
ValidList.Add(vtd);
}
else
{
TradeList etd = new TradeList();
etd.TradeId = splist[0];
etd.TradeType = splist[1];
etd.TradeDate = Convert.ToDateTime(splist[2]);
etd.MaturityDate = Convert.ToDateTime(splist[3]);
etd.Tradevalue = splist[4];
etd.Currency = splist[5];
etd.Money = Convert.ToInt32(splist[6]);
InvalidList.Add(etd);
}
}
List<string> Invalid = new List<string>();
foreach (TradeList trd in InvalidList)
{
StringBuilder sb = new StringBuilder();
sb.Append(trd.TradeId + ',');
sb.Append(trd.TradeType + ',');
sb.Append(Convert.ToDateTime(trd.TradeDate).ToShortDateString().ToString() + ',');
sb.Append(Convert.ToDateTime(trd.MaturityDate).ToShortDateString().ToString() + ',');
sb.Append(trd.Tradevalue + ',');
sb.Append(trd.Currency + ',');
sb.Append(trd.Money);
string str = sb.ToString();
Invalid.Add(str);
}
string Epath = @"H:\Desktop\Prj Local\ErrorList.txt";
if (File.Exists(Epath))
{
File.Delete(Epath);
}
using (StreamWriter swrite = new StreamWriter(Epath))
{
foreach (var lines in Invalid)
{
swrite.WriteLine(lines);
}
}
}
static void Main(string[] args)
{
Program P = new Program();
P.Loaddetails();
//Console.WriteLine(Result("CVB000","10/07/2017"));
Console.ReadLine();
}
XML
------
namespace ConsoleApplication12
{
[Serializable]
public class Trade
{
public int tradeid;
public string tradename;
public string tradeemail;
public DateTime tradedate;
}
}
namespace ConsoleApplication12
{
class Program
{
static void Main(string[] args)
{
List<Trade> lstTd = new List<Trade>();
XElement xe = XElement.Load(@"H:\Workspace\TEST\test.xml");
IEnumerable<XElement> iExe= xe.Elements();
foreach(var ele in iExe)
{
Trade trd = new Trade();
trd.tradeid = Convert.ToInt32(ele.Element("Id").Value);
trd.tradename = ele.Element("Name").Value;
trd.tradeemail = ele.Element("Email").Value;
trd.tradedate = Convert.ToDateTime(ele.Element("Date").Value);
lstTd.Add(trd);
}
XmlDocument xDoc = new XmlDocument();
XmlNode parentNode = xDoc.CreateElement("TradesMain");
xDoc.AppendChild(parentNode);
foreach (var trd in lstTd)
{
XmlNode secondParentNode = xDoc.CreateElement("Trades");
XmlNode firstChildNode = xDoc.CreateElement("TradeID");
firstChildNode.InnerText = trd.tradeid.ToString();
secondParentNode.AppendChild(firstChildNode);
XmlNode scChildNode = xDoc.CreateElement("TradeName");
scChildNode.InnerText = trd.tradename;
secondParentNode.AppendChild(scChildNode);
XmlNode trChildNode = xDoc.CreateElement("TradeEmail");
trChildNode.InnerText = trd.tradeemail;
secondParentNode.AppendChild(trChildNode);
XmlNode frChildNode = xDoc.CreateElement("TradeDate");
frChildNode.InnerText = trd.tradedate.ToString();
secondParentNode.AppendChild(frChildNode);
parentNode.AppendChild(secondParentNode);
}
xDoc.Save(@"H:\Workspace\TEST\testout.xml");
Console.WriteLine("ok");
XmlSerializer ser = new XmlSerializer(typeof(List<Trade>));
using (StreamWriter sw = new StreamWriter(@"H:\Workspace\TEST\testserout.xml"))
{
ser.Serialize(sw, lstTd);
}
}
}
}
<?xml version="1.0" encoding="utf-8" ?>
- <Employees>
- <Employee>
<Id>1</Id>
<Name>Sam</Name>
<Email>Sam@gmail.com</Email>
<Date>12/24/2013</Date>
</Employee>
- <Employee>
<Id>2</Id>
<Name>Lucy</Name>
<Email>Lucy@gmail.com</Email>
<Date>12/26/2013</Date>
</Employee>
- <Employee>
<Id>3</Id>
<Name>Kate</Name>
<Email>Kate@gmail.com</Email>
<Date>12/27/2013</Date>
</Employee>
- <Employee>
<Id>1</Id>
<Name>Sam</Name>
<Email>Sam@gmail.com</Email>
<Date>12/24/2014</Date>
</Employee>
</Employees>
--------------------
公开资料
{
List inputList=新列表();
字符串路径=@“H:\Desktop\Prj Local\TradeList.txt”;
StreamReader strReader=新的StreamReader(路径);
字符串行=”;
而((line=strReader.ReadLine())!=null)
{
如果(线长度>0)
{
输入列表。添加(行);
}
}
列表有效列表=新列表();
列表无效列表=新列表();
foreach(输入列表中的字符串lsttovalid)
{
DateTime outDate=新的DateTime();
DateTime outMatDate=新的DateTime();
字符串[]splist=lsttovalid.Split(',');
if(splist[0]!=null&&splist[0].StartsWith(“TR”)&&System.Text.RegularExpressions.Regex.IsMatch(splist[1],@“^ISIN\d{3}$”)&&
DateTime.TryParseExact(splist[2],“MM/dd/yyyy”,null,System.Globalization.DateTimeStyles.None,out-outDate)&&
DateTime.TryParseExact(splist[3],“MM/dd/yyyyy”,null,System.Globalization.datetimestyle.None,out-outMatDate)&&
outMatDate>outDate.AddYears(5)和&splist[4]!=null和&System.Text.RegularExpressions.Regex.IsMatch(splist[5],@“^[a-zA-Z]{3}$”)
{
贸易清单vtd=新贸易清单();
vtd.TradeId=splist[0];
vtd.TradeType=splist[1];
vtd.TradeDate=Convert.ToDateTime(splist[2]);
vtd.durityDate=Convert.ToDateTime(splist[3]);
vtd.Tradevalue=splist[4];
vtd.Currency=splist[5];
vtd.Money=转换为32(splist[6]);
有效列表。添加(vtd);
}
其他的
{
贸易清单etd=新贸易清单();
etd.TradeId=splist[0];
etd.TradeType=splist[1];
etd.TradeDate=Convert.ToDateTime(splist[2]);
etd.durityDate=Convert.ToDateTime(splist[3]);
etd.Tradevalue=splist[4];
etd.货币=splist[5];
etd.Money=转换为32(splist[6]);
无效列表。添加(etd);
}
}
列表无效=新列表();
foreach(无效列表中的贸易列表trd)
{
StringBuilder sb=新的StringBuilder();
sb.Append(trd.TradeId+',');
sb.Append(trd.TradeType+',');
sb.Append(Convert.ToDateTime(trd.TradeDate.ToSortDateString().ToString()+',');
sb.Append(Convert.ToDateTime(trd.durityDate).toSortDateString().ToString()+',');
sb.追加(trd.Tradevalue+',');
sb.追加(trd.Currency+',');
某人追加(trd.钱);
字符串str=sb.ToString();
无效。添加(str);
}
字符串Epath=@“H:\Desktop\Prj Local\ErrorList.txt”;
if(File.Exists(Epath))
{
文件。删除(Epath);
}
使用(StreamWriter swrite=newstreamwriter(Epath))
{
foreach(变量行无效)
{
swrite.WriteLine(行);
}
}
}
静态void Main(字符串[]参数)
{
程序P=新程序();
P.Loaddetails();
//控制台写入线(结果(“CVB000”、“10/07/2017”);
Console.ReadLine();
}
XML
------
命名空间控制台应用程序12
{
[可序列化]
公营贸易
{
公共国际贸易ID;
公共字符串商标名;
公共字符串和电子邮件;
公共日期时间交易日期;
}
}
命名空间控制台应用程序12
{
班级计划
{
静态void Main(字符串[]参数)
{
List lstTd=新列表();
XElement xe=XElement.Load(@“H:\Workspace\TEST\TEST.xml”);
IEnumerable iExe=xe.Elements();
foreach(iExe中的var ele)
{
贸易trd=新贸易();
trd.tradeid=转换为32(元素(“Id”).值);
trd.tradename=ele.Element(“Name”).Value;
trd.tradeemail=ele.Element(“Email”).Value;
trd.tradedate=Convert.ToDateTime(元素(“日期”)值);
lstTd.Add(trd);
}
XmlDocument xDoc=新的XmlDocument();
XmlNode parentNode=xDoc.CreateElement(“TradesMain”);
xDoc.AppendChild(父节点);
foreach(lstTd中的var trd)
{
XmlNode secondParentNo
<binding name="someService" /> to
<binding name="someService" maxBufferPoolSize="524288"
maxBufferSize="2147483646" maxReceivedMessageSize="2147483646"
transferMode="Buffered">
<security mode="Transport">
<transport clientCredentialType="Basic" proxyCredentialType="None"
realm="AXIS" />
<message clientCredentialType="Certificate" algorithmSuite="Default" />
</security>
</binding>