public virtual string HttpPost(string xmlRequest, Dictionary<string, string> config)
{
string logFile = null;
if (config.ContainsKey("logFile"))
{
logFile = config["logFile"];
}
var uri = config["url"];
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
var req = (HttpWebRequest)WebRequest.Create(uri);
var neuter = false;
if (config.ContainsKey("neuterAccountNums"))
{
neuter = ("true".Equals(config["neuterAccountNums"]));
}
var printxml = false;
if (config.ContainsKey("printxml"))
{
if("true".Equals(config["printxml"])) {
printxml = true;
}
}
if(printxml) {
Console.WriteLine(xmlRequest);
Console.WriteLine(logFile);
}
//log request
if (logFile != null)
{
Log(xmlRequest,logFile, neuter);
}
req.ContentType = "text/xml";
req.Method = "POST";
req.ServicePoint.MaxIdleTime = 10000;
req.ServicePoint.Expect100Continue = false;
if (IsProxyOn(config))
{
var myproxy = new WebProxy(config["proxyHost"], int.Parse(config["proxyPort"]))
{
BypassProxyOnLocal = true
};
req.Proxy = myproxy;
}
// submit http request
using (var writer = new StreamWriter(req.GetRequestStream()))
{
writer.Write(xmlRequest);
}
// read response
var resp = req.GetResponse();
string xmlResponse;
using (var reader = new StreamReader(resp.GetResponseStream()))
{
xmlResponse = reader.ReadToEnd().Trim();
}
if (printxml)
{
Console.WriteLine(xmlResponse);
}
//log response
if (logFile != null)
{
Log(xmlResponse,logFile,neuter);
}
return xmlResponse;
}