c# HttpWebRequest https的一些处理

先看下请求方法

 1   public string Get_Request(
 2             string strUrl,
 3             CookieContainer _cookie = null,
 4             string strHost = "",
 5             string strRefer = "",
 6             string strOrigin = "",
 7             bool blnHttps = false,
 8             Dictionary<string, string> lstHeads = null,
 9             bool blnKeepAlive=false,
10             string strEncoding = "utf-8",
11             string strContentType = "",
12             string strCertFile="",
13             string strAccept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
14             string strUserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36",
15             bool blnAllowAutoRedirect = true,
16             int intTimeout = 1000 * 30)
17         {
18             HttpWebRequest request;
19             HttpWebResponse response;
20             request = (HttpWebRequest)WebRequest.Create(strUrl);
21             if (blnHttps)
22             {
23                 ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
24                 request.ProtocolVersion = HttpVersion.Version10;
25
26                 ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
27
28             }
29             request.KeepAlive = blnKeepAlive;
30             request.Accept = strAccept;
31             request.Timeout = intTimeout;
32             request.Method = "GET";
33             request.Credentials = CredentialCache.DefaultCredentials;
34             request.UserAgent = strUserAgent;
35             request.AllowAutoRedirect = blnAllowAutoRedirect;
36             request.Proxy = null;
37             if (!string.IsNullOrEmpty(strContentType))
38             {
39                 request.ContentType = strContentType;
40             }
41             if (_cookie != null)
42             {
43                 request.CookieContainer = _cookie;
44             }
45             if (!string.IsNullOrEmpty(strHost))
46             {
47                 request.Host = strHost;
48             }
49             if (!string.IsNullOrEmpty(strRefer))
50             {
51                 request.Referer = strRefer;
52             }
53             if (!string.IsNullOrEmpty(strOrigin))
54             {
55                 request.Headers.Add("Origin", strOrigin);
56             }
57             if (lstHeads != null && lstHeads.Count > 0)
58             {
59                 foreach (var item in lstHeads)
60                 {
61                     request.Headers.Add(item.Key, item.Value);
62                 }
63             }
64             response = (HttpWebResponse)request.GetResponse();
65             var sr = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(strEncoding));
66             string strResult = sr.ReadToEnd();
67             sr.Close();
68             request.Abort();
69             response.Close();
70             return strResult;
71
72         }
73         private static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
74         {
75             return true; //总是接受
76         }  
if (blnHttps)内的代码就是针对https所做的处理

需要注意的是

1、当使用https请求的时候需要确定加密协议是哪个,这个可以通过火狐查看到,如下图

2、只有Framework4.5及以上才支持1.1和1.2协议

如果仍有什么不明白的地方请留言吧

时间: 2024-11-16 04:38:54

c# HttpWebRequest https的一些处理的相关文章

屏谖畔涨善ab63gro0l16rstpb58

中新社首尔4月13日电 (记者 吴旭)韩国第20届国会议员选举于当地时间13日18时结束投票.据韩国中央选举管理委员会公布的初步统计数据显示,本届国会议员选举投票率为58%,较上一届高出3.8个百分点.最终确定投票结果将于14日上午予以公布.从选区来看,全罗南道.全罗北道投票率领先,均突破60%,而大邱.釜山.京畿道及仁川地区投票率则低于平均值.在选举"主战场"首都圈地区,首尔以59.8%的投票率超出均值.根据目前初步统计结果,本届选举的投票率虽然没有超过事前预测的60%,但较第18届

噬鸵叟客切q08c365s

新华社瓦莱塔4月10日电(记者李拯宇 李佳)全国政协主席俞正声10日在前往非洲三国进行正式友好访问途中过境马耳他,在瓦莱塔会见马耳他议长法鲁贾. 俞正声说,中马保持长期友好关系,政治上相互信任,经济上密切合作,人文交流不断深化.中方感谢马方在中国撤侨行动中给予的支持和帮助.中方愿同马方一道,落实两国领导人达成的共识,弘扬中马传统友好,拓展在科技.渔业.旅游等领域互利合作,打造合作新亮点.中国全国政协愿与马耳他议会和社会各界保持密切交往,加强治国理政经验交流,为两国扩大务实合作营造良好环境,共同促

蚜戮苛裂退q47uc785b3

新华社瓦莱塔4月10日电(记者李拯宇 李佳)全国政协主席俞正声10日在前往非洲三国进行正式友好访问途中过境马耳他,在瓦莱塔会见马耳他议长法鲁贾. 俞正声说,中马保持长期友好关系,政治上相互信任,经济上密切合作,人文交流不断深化.中方感谢马方在中国撤侨行动中给予的支持和帮助.中方愿同马方一道,落实两国领导人达成的共识,弘扬中马传统友好,拓展在科技.渔业.旅游等领域互利合作,打造合作新亮点.中国全国政协愿与马耳他议会和社会各界保持密切交往,加强治国理政经验交流,为两国扩大务实合作营造良好环境,共同促

中三他身东取必信史规不

对啊我恍然大悟凌月果然心细如尘啊 但是凌月的雪却隐藏着绝强的杀伤力下一刻突然一大片冰雪在血饮的人群中爆开顿时傲世狂人和傲世嗜血均是大惊失色忍不住道居然那么高的防御 但是级别却只有级而已不过这已经足以傲视群雄了因为我的等级已经一下子窜到了中国排名的第位只要再努力一把完全可以在等级榜上崭露头角了顿时傲世狂风和傲世狂剑两个大惊失色注已经全部被吸引了过去不客气就不客气谁怕谁啊但是这一切也只是为了杀最后的而清理路障而已那个食人魔首领才是我们真正此行的目的嗯出去吃夜宵吧秦韵亲手做的 嗯那好吧凌雪又叮嘱了我一

在C#用HttpWebRequest中发送GET/HTTP/HTTPS请求

通用辅助类 下面是我编写的一个辅助类,在这个类中采用了HttpWebRequest中发送GET/HTTP/HTTPS请求,因为有的时候需要获取认证信息(如Cookie),所以返回的是HttpWebResponse对象,有了返回的HttpWebResponse实例,可以获取登录过程中返回的会话信息,也可以获取响应流. 代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Text;

【转】在C#用HttpWebRequest中发送GET/HTTP/HTTPS请求

http://zhoufoxcn.blog.51cto.com/792419/561934 这个需求来自于我最近练手的一个项目,在项目中我需要将一些自己发表的和收藏整理的网文集中到一个地方存放,如果全部采用手工操作工作量大而且繁琐,因此周公决定利用C#来实现.在很多地方都需要验证用户身份才可以进行下一步操作,这就免不了POST请求来登录,在实际过程中发现有些网站登录是HTTPS形式的,在解决过程中遇到了一些小问题,现在跟大家分享. 通用辅助类 下面是我编写的一个辅助类,在这个类中采用了HttpW

C# HttpWebRequest GET HTTP HTTPS 请求

下面是我编写的一个辅助类,在这个类中采用了HttpWebRequest中发送GET/HTTP/HTTPS请求,因为有的时候需要获取认证信息(如Cookie),所以返回的是HttpWebResponse对象,有了返回的HttpWebResponse实例,可以获取登录过程中返回的会话信息,也可以获取响应流. using System; using System.Collections.Generic; using System.Linq; using System.Text; using Syste

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.Re

GJM : C# HttpWebRequest GET HTTP HTTPS 请求 [转载]

C# HttpWebRequest GET HTTP HTTPS 请求 这个需求来自于我最近练手的一个项目,在项目中我需要将一些自己发表的和收藏整理的网文集中到一个地方存放,如果全部采用手工操作工作量大而且繁琐,因此周公决定利用C#来实现.在很多地方都需要验证用户身份才可以进行下一步操作,这就免不了POST请求来登录,在实际过程中发现有些网站登录是HTTPS形式的,在解决过程中遇到了一些小问题,现在跟大家分享.通用辅助类下面是我编写的一个辅助类,在这个类中采用了HttpWebRequest中发送