winform通过https与服务器进行通信
来源:互联网 发布:阿里云ces加内存 编辑:程序博客网 时间:2024/05/16 15:27
C#做客户端(winfrom)是非常方便的。
当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;
0 0
- winform通过https与服务器进行通信
- 通过XML数据与服务器进行通信
- Android通过Socket与服务器进行通信
- Android通过https协议与服务器端进行通信
- 3,Android通过https与服务器端进行通信
- android 使用https与服务器进行通信交互
- LDAP 客户端通过 SSL 与 LDAP 服务器进行通信
- Android入门:通过XML数据与服务器进行通信
- Android入门:通过JSON数据与服务器进行通信
- Android入门:通过XML数据与服务器进行通信
- Android入门:通过JSON数据与服务器进行通信
- Android入门:通过JSON数据与服务器进行通信
- Android入门:通过XML数据与服务器进行通信
- Android入门:通过JSON数据与服务器进行通信
- Android利用JNI通过Socket与服务器进行通信
- Android 用Https协议与服务器通信
- 关于服务器通过串口进行通信
- flex中通过https与服务器交互
- python *和**
- HDU-5402 Travelling Salesman Problem(模拟)
- hdu 2059 龟兔赛跑
- Java深度历险(五)Java泛型
- 指针和引用区别(More Effective_C++_1(基础))
- winform通过https与服务器进行通信
- lightoj 1032 - Fast Bit Calculations (数位DP)
- C++中数据类型的字节数
- hdoj 1598 【并查集加贪心】
- linux下网络编程send,recv,read,write的区别
- 过河问题
- Java中我常使用的ArrayList方法
- C++名字查找
- LDA(文档主题生成模型)--零基础(一)