c# HttpWebRequest https的一些处理
先看下请求方法
- 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 = * )
- {
- 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 > )
- {
- 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# 爬虫 破境之道》:第一境 爬虫原理 — 第二节:WebRequest
本节主要来介绍一下,在C#中制造爬虫,最为常见.常用.实用的基础类 ------ WebRequest.WebResponse. 先来看一个示例 [1.2.1]: using System; usin ...
- 在 IIS 6 和 IIS 7中配置Https,设置WCF同时支持HTTP和HTPPS,以及使用HttpWebRequest和HttpClient调用HttpS
IIS 7 ,给IIS添加CA证书以支持https IIS 6 架设证书服务器 及 让IIS启用HTTPS服务 WCF IIS 7中配置HTTPS C#利用HttpWebRequest进行post请求 ...
- 在C#用HttpWebRequest中发送GET/HTTP/HTTPS请求
通用辅助类 下面是我编写的一个辅助类,在这个类中采用了HttpWebRequest中发送GET/HTTP/HTTPS请求,因为有的时候需 要获取认证信息(如Cookie),所以返回的是HttpWeb ...
- C# HttpWebRequest GET HTTP HTTPS 请求
下面是我编写的一个辅助类,在这个类中采用了HttpWebRequest中发送GET/HTTP/HTTPS请求,因为有的时候需要获取认证信息(如Cookie),所以返回的是HttpWebResponse ...
- C#利用HttpWebRequest进行post请求的示例(HTTPS)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.N ...
- 通过HttpWebRequest请求https接口
一.为什么进行代理接口的开发: 有些项目需要访问被墙了哒网站,比如前不久公司开发项目需要使用google地图的接口,而google在中国被墙了,所有打算做一个代理接口服务,将代理放到国外服务器上,通过 ...
- (转) 在C#用HttpWebRequest中发送GET/HTTP/HTTPS请求
转自:http://blog.csdn.net/zhoufoxcn/article/details/6404236 通用辅助类 下面是我编写的一个辅助类,在这个类中采用了HttpWebRequest中 ...
- 【转】Problems with HTTPS, HttpWebRequest, and iOS?
We're using HttpWebRequest to hit HTTPS urls, on iOS. In Debug, local builds, etc. everything works ...
- 【转】在C#用HttpWebRequest中发送GET/HTTP/HTTPS请求
http://zhoufoxcn.blog.51cto.com/792419/561934 这个需求来自于我最近练手的一个项目,在项目中我需要将一些自己发表的和收藏整理的网文集中到一个地方存放,如果全 ...
随机推荐
- zookeeper 分布式安装/配置/启动
版本3.4.10,已提前配置好jdk 三台主机:hadoop002,hadoop003.hadoop004 1.配置 将zookeeper-3.4.10.tar.gz解压后进入zookeeper-3. ...
- Linux 增值服务中删除,自己主动和国家执行
CAMS 在自己主动参加相关的服务安装过程.在最后的安装过程中会提示用户是否启动该服务,这样的服务才能生效,需要注意的是一个服务并不意味着系统启动过程中被添加到该服务后,会自己主动执行,只可用于ser ...
- PCI GXL学习之安装篇
作者:朱金灿 来源:http://blog.csdn.net/clever101 上周简单学习了PCI gxl的使用和二次开发.说实话gxl没有我想象中那么自动化,我原以为把一个数据处理作业扔给gxl ...
- DDD实战12 值对象不创建表,而是直接作为实体中的字段
这里的值对象如下风格: namespace Order.Domain.PocoModels { //订单地址 //虽然是值对象 但是不继承ValueObject //因为继承ValueObject会有 ...
- 数学概念的提出(一) —— 熵的定义式 H(x)=-log2(p(x))
h(x)=−log2p(x) 考虑一个离散型随机变量 x,当我们观测到该变量的一个特定值,问此时我们通过该值获得的关于该变量的信息量是多少? 信息量可视为"意外的程度"(degre ...
- python 教程 第三章、 运算符与表达式
第三章. 运算符与表达式 1) 运算符 + 加 - 减 * 乘 ** 幂 / 除 // 取整除 % 取模 << 左移 >> 右移 & 按位与 | 按位或 ^ 按位 ...
- python 教程 第二章、 类型
第二章. 类型 常量 5,1.23,9.25e-3,’This is a string’,”It’s a string!” 1) 数 整数:2 长整数: 浮点数:3.23,52.3E-4 复数:-5+ ...
- 好玩的WPF第三弹:颤抖吧,地球!消失吧,地球!
原文:好玩的WPF第三弹:颤抖吧,地球!消失吧,地球! 版权声明:转载请联系本人,感谢配合!本站地址:http://blog.csdn.net/nomasp https://blog.csdn.net ...
- error: stable identifier required, but $iwC.this.$VAL4.sqlContext found.
在spark_shell创建SQLContext导入对象后sqlContext时间,例如,下面的例外: 找个理由sqlContext必须是val类型. 后引入到正常的变化. 版权声明:本文博客原创文章 ...
- 正确 zip 压缩和解压码
网上流传zip压缩和解压缩 该代码有一个非常大的问题 尽管使用了ant压缩和解压缩.但任务流或使用java.util.zip 的方式来写,我在压缩的文件夹结构中所使用的过程遇到是不正确,即使是不同的文 ...