c# HttpWebRequest https的一些处理
2017-06-25 16:54
483 查看
先看下请求方法
需要注意的是
1、当使用https请求的时候需要确定加密协议是哪个,这个可以通过火狐查看到,如下图
2、只有Framework4.5及以上才支持1.1和1.2协议
如果仍有什么不明白的地方请留言吧
public string Get_Request( string strUrl, CookieContainer _cookie = null, string strHost = "", string strRefer = "", string strOrigin = "", bool blnHttps = false, Dictionary<string, string> lstHeads = null, bool blnKeepAlive=false, string strEncoding = "utf-8", string strContentType = "", string strCertFile="", string strAccept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", string strUserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36", bool blnAllowAutoRedirect = true, int intTimeout = 1000 * 30) { HttpWebRequest request; HttpWebResponse response; request = (HttpWebRequest)WebRequest.Create(strUrl); if (blnHttps) { ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult); request.ProtocolVersion = HttpVersion.Version10; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; } request.KeepAlive = blnKeepAlive; request.Accept = strAccept; request.Timeout = intTimeout; request.Method = "GET"; request.Credentials = CredentialCache.DefaultCredentials; request.UserAgent = strUserAgent; request.AllowAutoRedirect = blnAllowAutoRedirect; request.Proxy = null; if (!string.IsNullOrEmpty(strContentType)) { request.ContentType = strContentType; } if (_cookie != null) { request.CookieContainer = _cookie; } if (!string.IsNullOrEmpty(strHost)) { request.Host = strHost; } if (!string.IsNullOrEmpty(strRefer)) { request.Referer = strRefer; } if (!string.IsNullOrEmpty(strOrigin)) { request.Headers.Add("Origin", strOrigin); } if (lstHeads != null && lstHeads.Count > 0) { foreach (var item in lstHeads) { request.Headers.Add(item.Key, item.Value); } } response = (HttpWebResponse)request.GetResponse(); var sr = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(strEncoding)); string strResult = sr.ReadToEnd(); sr.Close(); request.Abort(); response.Close(); return strResult; } private static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) { return true; //总是接受 }
if (blnHttps)内的代码就是针对https所做的处理
需要注意的是
1、当使用https请求的时候需要确定加密协议是哪个,这个可以通过火狐查看到,如下图
2、只有Framework4.5及以上才支持1.1和1.2协议
如果仍有什么不明白的地方请留言吧
相关文章推荐
- C# httpwebrequest访问HTTPS错误处理
- C# httpwebrequest访问HTTPS错误处理方法
- 在C#用HttpWebRequest中发送GET/HTTP/HTTPS请求
- C#、VB.NET使用HttpWebRequest访问https地址(SSL)的实现
- (转载)在C#用HttpWebRequest中发送GET/HTTP/HTTPS请求
- 在C#用HttpWebRequest中发送GET/HTTP/HTTPS请求
- C# winform端 通过HttpWebRequest进行post和get请求,数据格式为json,后台java端接收,其中有关传输特殊字符(\t,\r,',\n,n)等处理
- 在C#用HttpWebRequest中发送GET/HTTP/HTTPS请求
- 在C#用HttpWebRequest中发送GET/HTTP/HTTPS请求
- 在C#用HttpWebRequest中发送GET/HTTP/HTTPS请求
- C#利用HttpWebRequest进行post请求的示例(HTTPS)
- C#、VB.NET使用HttpWebRequest访问https地址(SSL)的实现
- [转]C#、VB.NET使用HttpWebRequest访问https地址(SSL)的实现
- 在C#用HttpWebRequest中发送GET/HTTP/HTTPS请求 .
- 在C#用HttpWebRequest中发送GET/HTTP/HTTPS请求
- C#、VB.NET使用HttpWebRequest访问https地址(SSL)的实现方法
- 在C#用HttpWebRequest中发送GET/HTTP/HTTPS请求
- 在C#用HttpWebRequest中发送GET/HTTP/HTTPS请求
- C# WebRequest处理Https请求
- 在C#用HttpWebRequest中发送GET/HTTP/HTTPS请求