C#利用HttpWebRequest進行post請求的樣本(HTTPS)

來源:互聯網
上載者:User

標籤:ons   pat   ram   amr   cal   add   data   uri   generic   

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);         }    }}

HttpWebRequest預設會用代理進行串連,導致擷取結果比較慢。解決辦法是,配置:

request.Proxy = null;

不使用代理,即可。

C#利用HttpWebRequest進行post請求的樣本(HTTPS)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.