winform通过https与服务器进行通信
2015-08-18 20:44
489 查看
C#做客户端(winfrom)是非常方便的。
当winfrom通过https与服务器进行通信时,可以选择json,xml等数据结构封装要传输的数据。
下面是以xml封装数据,以https与server进行通信的函数:
https以安全著称,但是有时因为各种原因,需要跳过验证证书的合法性,这时候,就需要在代码中做出相应的修改。
添加如下函数:
之后,在post函数中添加如下语句:
当winfrom通过https与服务器进行通信时,可以选择json,xml等数据结构封装要传输的数据。
下面是以xml封装数据,以https与server进行通信的函数:
/// <summary> /// 通过post与server进行通信 /// </summary> /// <param name="xml">以xml格式封装的数据</param> /// <param name="url">服务器地址</param> /// <returns>数据以xml格式返回</returns> 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/x-www-form-urlencoded"; req.ContentType = "application/xml";//设置client与server通信的数据结构 req.ContentLength = bs.Length; //req.ReadWriteTimeout(); 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以安全著称,但是有时因为各种原因,需要跳过验证证书的合法性,这时候,就需要在代码中做出相应的修改。
添加如下函数:
/// <summary> /// 该函数的作用就是,不验证证书的合法性。 /// </summary> /// <param name="sender"></param> /// <param name="cert"></param> /// <param name="chain"></param> /// <param name="error"></param> /// <returns></returns> private static bool RemoteCertificateValidate(object sender, X509Certificate cert, X509Chain chain, SslPolicyErrors error) { // trust any certificate!!! System.Console.WriteLine("Warning, trust any certificate"); //为了通过证书验证,总是返回true return true; }
之后,在post函数中添加如下语句:
//验证服务器证书回调自动验证 ServicePointManager.ServerCertificateValidationCallback += RemoteCertificateValidate;
相关文章推荐
- 小心服务器内存居高不下的元凶--WebAPI服务
- 运维入门
- XML 与 JSON 优劣对比
- Linux5.9无人值守安装
- 数据中心和云未来的十二大趋势
- 用vsftp快速搭建ftp服务器
- Linux快速构建apache web服务器
- 服务器监控策略浅谈
- As3.0 xml + Loader应用代码
- 如何降低服务器采购成本 原理分析
- 建议的服务器分区办法
- 服务器托管六大优势分析
- Erlang实现的一个Web服务器代码实例
- 服务器技术全面解析
- winform绑定快捷键的方法
- 网马生成器 MS Internet Explorer XML Parsing Buffer Overflow Exploit (vista) 0day
- ext读取两种结构的xml的代码