C#做客户端(winfrom)是非常方便的。
当winfrom通过https与服务器进行通信时,可以选择json,xml等数据结构封装要传输的数据。
下面是以xml封装数据,以https与server进行通信的函数:
public string post(string xml, string url)
{
string xmlStr = null;
try
{
byte[] bs = Encoding.UTF8.GetBytes(xml);
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "POST";
req.ContentType = "application/xml";
req.ContentLength = bs.Length;
Stream reqStream = req.GetRequestStream();
reqStream.Write(bs, 0, bs.Length);
WebResponse result = req.GetResponse();
Stream ReceiveStream = result.GetResponseStream();
StreamReader sr = new StreamReader(ReceiveStream);
xmlStr = sr.ReadToEnd();
}
catch (Exception ex)
{
LogHelper.WriteLog(typeof(Form1), ex);
}
return xmlStr;
}
https以安全著称,但是有时因为各种原因,需要跳过验证证书的合法性,这时候,就需要在代码中做出相应的修改。
添加如下函数:
private static bool RemoteCertificateValidate(object sender, X509Certificate cert, X509Chain chain, SslPolicyErrors error)
{
System.Console.WriteLine("Warning, trust any certificate");
return true;
}
之后,在post函数中添加如下语句:
//验证服务器证书回调自动验证
ServicePointManager.ServerCertificateValidationCallback += RemoteCertificateValidate;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)