C#利用HttpWebRequest进行post请求的示例(HTTPS)


  • using System;  
  • using System.Collections.Generic;  
  • using System.Linq;  
  • using System.Text;  
  • using System.Net.Security;  
  • using System.Security.Cryptography.X509Certificates;  
  • using System.Net;  
  • using System.IO;  
  • using System.IO.Compression;  
  • using System.Text.RegularExpressions;     
  •   
  • namespace HttpWebRequestDemo  
  • {  
  •     class Program  
  •     {  
  •         private static readonly string DefaultUserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)";  
  •   
  •         private static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)  
  •         {  
  •             return true; //总是接受     
  •         }  
  •   
  •         public static HttpWebResponse CreatePostHttpResponse(string url, IDictionary<string, string> parameters,Encoding charset)  
  •         {  
  •             HttpWebRequest request = null;  
  •             //HTTPSQ请求  
  •             ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);  
  •             request = WebRequest.Create(url) as HttpWebRequest;  
  •             request.ProtocolVersion = HttpVersion.Version10;  
  •             request.Method = "POST";  
  •             request.ContentType = "application/x-www-form-urlencoded";  
  •             request.UserAgent = DefaultUserAgent;  
  •             //如果需要POST数据     
  •             if (!(parameters == null || parameters.Count == 0))  
  •             {  
  •                 StringBuilder buffer = new StringBuilder();  
  •                 int i = 0;  
  •                 foreach (string key in parameters.Keys)  
  •                 {  
  •                     if (i > 0)  
  •                     {  
  •                         buffer.AppendFormat("&{0}={1}", key, parameters[key]);  
  •                     }  
  •                     else  
  •                     {  
  •                         buffer.AppendFormat("{0}={1}", key, parameters[key]);  
  •                     }  
  •                     i++;  
  •                 }  
  •                 byte[] data = charset.GetBytes(buffer.ToString());  
  •                 using (Stream stream = request.GetRequestStream())  
  •                 {  
  •                     stream.Write(data, 0, data.Length);  
  •                 }  
  •             }  
  •             return request.GetResponse() as HttpWebResponse;  
  •         }     
  •   
  •         static void Main(string[] args)  
  •         {  
  •             string url = "https://192.168.1.101/httpOrg/create";  
  •             Encoding encoding = Encoding.GetEncoding("utf-8");  
  •             IDictionary<string, string> parameters = new Dictionary<string, string>();  
  •             parameters.Add("authuser", "*****");  
  •             parameters.Add("authpass", "*****");  
  •             parameters.Add("orgkey","*****");  
  •             parameters.Add("orgname", "*****");  
  •             HttpWebResponse response = Program.CreatePostHttpResponse(url,parameters,encoding);  
  •             //打印返回值  
  •             Stream stream = response.GetResponseStream();   //获取响应的字符串流  
  •             StreamReader sr = new StreamReader(stream); //创建一个stream读取流  
  •             string html = sr.ReadToEnd();   //从头读到尾,放到字符串html  
  •             Console.WriteLine(html);   
  •         }  
  •     }  
  • }  

  • 免责声明!

    本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



     
    粤ICP备18138465号  © 2018-2025 CODEPRJ.COM