c# .net 4.0 HttpWebRequest 访问https TLS1.2 300C

用vs2010开发的web应用,部署在 IIS6.0 下,代码中用HttpWebRequest访问https TLS1.2网站,报protocolerror错误。
代码如下:
C# code
...
url="https://login.taobao.com/member/login.jhtml";
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
ServicePointManager.SecurityProtocol = (SecurityProtocolType)192 | (SecurityProtocolType)768 | (SecurityProtocolType)3072;
request = WebRequest.Create(url) as HttpWebRequest;
request.ProtocolVersion = HttpVersion.Version10;
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";

request.UserAgent = "Mozilla/5.0+(Windows+NT+5.1)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/55.0.2883.87+Safari/537.36";

request.GetResponse() as HttpWebResponse
...
private static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)

{

return true; //总是接受

}

url="https://www.baidu.com" 或者 url="https://www.icbc.com.cn" 不会报错。

同样的代码升级到 vs2012,IIs8.0,.net4.5 还是报同样的错误。

0

7个回答

你的网站是否配置好支持的HTTPS的tls协议。

0

你需要做好tls的配置和认证就可以了

0

iis启用下tls,参考:https://www.cnblogs.com/haoliansheng/p/8065661.html
检查防火墙是否有协议的禁止

0

ServicePointManager.SecurityProtocol = (SecurityProtocolType)192 | (SecurityProtocolType)768 | (SecurityProtocolType)3072;这一段多余,去掉试试

0

可以尝试换个useragent,我测试过你给的地址,不用useragent是可以访问的,我试过其它https网站有个网站无useragent时不可用,增加了useragent的时候就可以访问了
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36
这个useragent试试

0

股份单身公害讽德诵功讽德诵功第三方根深蒂固

-1

你需要做好tls的配置和认证

-1
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
.Net 与TLS版本的兼容性
.NET 在支持 TLS 1.1 或 TLS 1.2 操作系统中运行时,兼容最新版本.NET 4.6 和更高版本 兼容 TLS 1.1 或更高版本(默认设置)。.NET 4.5 至 4.5.2 默认情况下,.NET 4.5、4.5.1 和 4.5.2 场合, TLS 1.1 和 TLS1.2有效,共有两个选项以进行启用,如下所述。选项 1: 通过设置 System.Net.ServicePo
使用HttpWebRequest请求https链接时,无法访问的问题,设置ServicePointManager.SecurityProtocol安全协议
//请求前设置一下使用的安全协议类型 System.Net if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase)){ ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback((o...
【转】C#多线程环境下调用 HttpWebRequest 并发连接限制 HttpClient是否有默认并发数限制? 在.Net 4.0之前,一直是依靠HttpWebRequest实现Htt
【转】C#多线程环境下调用 HttpWebRequest 并发连接限制 HttpClient是否有默认并发数限制? 在.Net 4.0之前,一直是依靠HttpWebRequest实现Http操作的。它默认有一个非常保守的同一站点下最大2并发数限制,导致默认情况下HttpWebRequest往往得不到理想的速度(估计这个策略郁闷了不少码农),必须修改App.config或Serv
httpwebrequest 使用htts加密证书无证书通过方法
private static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)         {                             return true;                  
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 Sys
C# asp.net http HttpWebRequest模拟浏览器请求下载文件到本地.txt
C# asp.net http HttpWebRequest模拟浏览器请求下载文件到本地
[C#]使用HttpWebRequest请求远端服务器时如何加载SSL证书
编写者:郑昀@UltraPower http://www.cnblogs.com/zhengyun_ustc/archive/2005/04/11/135820.html首先加上引用“System.Security.DLL”,其次在工程中 using System.Security.Cryptography.X509Certificates; 这样就可以使用“ X509Ce
【C#MVC】 使用HttpWebRequest访问外部API,并返回json信息 (Access_Key)
在c#中调用外部API或者自己系统的API都是很简单的,这里提供使用HttpWebRequest的方式访问外部API,自定义了头部Access_key. 若外部系统没有此安全验证,可以去掉。 public string OpenReadWithHttps(string URL, string strPostdata, string strEncoding) {
c#采用https访问Web服务器的方法
1 基本编程方法:1 基本编程方法: using System;using System.Collections.Generic;using System.Text;using System.Net;using System.Threading;using I
C#实现通过HttpWebRequest发送POST请求实现网站自动登陆
C#实现通过HttpWebRequest发送POST请求实现网站自动登陆
利用HttpWebRequest和HttpWebResponse获取Cookie并实现模拟登录
之前看过某个同学的一篇有关与使用JSoup解析学校图书馆的文章,仔细一看,发现竟然是同校!!既然对方用的是java,那么我也就来个C#好了,虽然我的入门语言是java。 C#没有J
C# 后台使用HttpWebRequest发送POST请求帮助类
using System; using System.Collections.Generic; using System.IO; using System.Net; using System.Text; namespace Utils { public class RequestHelper { public static string SendHttpReque
.net模拟登录博客园,使用httpWebRequest登录并发布随笔文章
.net模拟登录博客园,使用httpWebRequest登录并发布随笔文章
HTTPs TLS1.2 请求模拟测试
以下工具可以用来测试TLS1.2证书是否生效: 第一个类: package com.firstdata.TLStool; import javax.net.ssl.HostnameVerifier; import javax.net.ssl.SSLSession; /** * 实现用于主机名验证的基接口。 * 在握手期间,如果 URL 的主机名和服务器的标识主机名不匹配,则验证机制可...
c# httpwebrequest调用webservice demo
httpwebrequest调用webservice返回数据
C# 第一次网络请求速度慢的原因
修改后代码如下: public string RequestServer(string requestUriString) { try { GC.Collect(); var request = WebRequest.Create(requestUriString) as
发送基于TLS1.2的HTTPS请求
本文主要介绍了如何发送基于TLS1.2安全协议的HTTPS请求 由于目前对网络安全越来越重视,我们会在HTTP的基础上加上一些安全协议 目前最为广泛所使用的安全协议是TLS1.2 很多服务端容器都已经支持通过配置来设置HTTPS的端口从而支持HTTPS协议 在发送HTTPS的请求之前我们需要获取服务端提供的签名证书 之后将签名证书通过keytool命令导入到本地的keystore中,方便
利用HttpWebRequest通过POST Json数据在.net后台实现不同平台间的数据传输
/// /// 返回JSon数据 /// /// 要处理的JSON数据 /// 要提交的URL /// 返回的JSON处理字符串 public string GetResponseData(string JSONData,string Url) { HttpWebReq
c# HttpWebRequest未能为 SSL/TLS 安全通道建立信任的终极解决办法
一般遇到这种情况的是在win7或以下的操作系统上,因为操作系统本身不支持大于1024的加密密钥 解决步骤: 一,在程序里写入如下代码,在获取网站证书的时候最好使用谷歌浏览器,操作如下图1、图2、图3进行保存到桌面,然后复制到程序运行的根目录。 (图1) ...
TLS1.2 规范
TLS1.2协议 共包含rfc5246 rfc5746 rfc5878 rfc6176几个部分
【已解决】httpwebrequest并发速度上不去的原因.
用VB.NET做httpwebrequest的多线程开发,照着网上的说明修改了ServicePointManager.DefaultConnectionLimit为512,可是速度还是上不去.郁闷了一上午,最后找到原因了:原来是杀毒软件的缘故.加了360和360杀毒的白名单后,速度提高了很多倍.以下为测试数据:2131个网址:50 threads 860s=14.33min100 threads ...
修复.NET中通过HttpWebRequest 中GET 方法丢失Cookie的bug
修复.NET中通过HttpWebRequest 中GET 方法丢失Cookie的bug
使用HttpWebRequest解决访问https网页乱码的问题
/// <summary> /// 获取网页内容, 需要把获取到的https页面字节流通过gzip解压,用这种方法解决了乱码问题。 /// </summary> /// <param name="url"></param> /// <returns></..
[dotNET]用HttpWebRequest加载证书建立SSL通道时发生异常的解决办法
<iframe align="center" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog336280.html" frameborder="0" width="336" scrolling="no" height="280">
c# HttpWebRequest使用Proxy实现指定IP的代理
内网用户或代理上网的用户使用 HttpWebRequest request (HttpWebRequest)WebRequest.Create("http://www.example.com/Default.aspx"); System.Net.WebProxy proxy = new WebProxy("127.0.0.1", 8000);//指定的ip和端口 request.Proxy =...
利用HttpWebRequest下载资源
利用 HttpWebRequest下载文件并保存到本地。
C#、VB.NET使用HttpWebRequest访问https地址(SSL)的实现方法
view sourceprint?using System.Net; using System.Net.Security; using System.Security.Authentication; using System.Security.Cryptography.X509Certificates; .Net 1.1 view sourceprint?01 internal class AcceptAllCertificatePolicy : ICe
C#利用HttpWebRequest 测试网站是否可以正常访问
看到的一个比较好的测试网站是否正常访问的方法
关于Android4.x系统支持TLS1.2的解决方案
为Http请求的网络客户端设置一个特殊的SSLSocketFactory。这个代理SSLSocketFactory在创建一个Socket连接的时候,会设置Socket的可用的TLS版本。private static final String[] TLS_SUPPORT_VERSION = {"TLSv1.1", "TLSv1.2"}; ((SSLSocket) s).setEnabledProto
HttpWebRequest模拟浏览器的GET、POST请求
在MVC学习系列继续之前,这里先插一篇——HttpWebRequest模拟浏览器的GET、POST请求。利用get 获取某一个电影,然后用POST修改。在这之前先将之前创建的MVC项目发布,如下图: 在模拟请求之前,我们先用Fiddler检测一下GET请求: 现在我们创建一个窗体应用程序,然后利用HttpWebRequest 按照上图中的HTTP头部信息模拟 GET请求,下面是
C# HttpWebRequest 绝技 根据URL地址获取网页信息
如果要使用中间的方法的话,可以访问我的帮助类完全免费开源:C# HttpHelper,帮助类,真正的Httprequest请求时无视编码,无视证书,无视Cookie,网页抓取 1.第一招,根据URL地址获取网页信息    先来看一下代码 get方法 publicstatic string GetUrltoHtml(string Url,string type)
C#如何使用 WebRequest 类请求网页Headers及内容数据源码
学习目标:C#利用WebRequest 类请求网页Headers及内容数据源码练习平台:Windows10企业版(64位)测试工具:MicrosoftVisual Studio2017(版本默认安装)。程序语言:.NET C#主要内容方法:WebRequest request = WebRequest.Create("http://www.baidu.com/");//调用 Create 来创建 ...
微信小程序 https 配置 IIS中开启TLS1.2
Windows 2008系统在IIS中开启TLS1.2 1、绑定好证书 2、运行regedit 3、开启TLS1.2 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client] "DisabledByD
C#(Csharp)多线程HTTP并发请求(HttpWebRequest)采集蜘蛛
C#(也称Csharp)在多线程下并发执行HTTP请求的实现,采用C#封装HttpWebRequest类开发的多线程并发采集程序源码文档,文档中详细说明了HttpWebRequest并发HTTP请求实现网站采集的方法,经过测试同时并发1000+不是问题,好东西和大家分享哦:)
C#WebRequest设置代理访问
//WebRequest设置代理,抓起数据             System.Net.WebProxy wp = new System.Net.WebProxy("192.168.0.100",true);             wp.Credentials = new System.Net.NetworkCredential("username","password");      
通过httpwebrequest实现http的post和get方法莫名出现500内部服务器错误的解决办法
通过httpwebrequest实现http的post方法 Dim data As Byte() data = System.Text.Encoding.UTF8.GetBytes("...") '需要post的参数name1=value1&name2=value2 '发送请求 Di
多线程环境下调用 HttpWebRequest 并发连接限制
.net 的 HttpWebRequest 或者 WebClient 在多线程情况下存在并发连接限制,这个限制在桌面操作系统如 windows xp , windows  7 下默认是2,在服务器操作系统上默认为10. 如果不修改这个并发连接限制,那么客户端同时可以建立的 http 连接数就只有2个或10个。对于一些诸如浏览器或网络蜘蛛的应用,2个或10个并发数量实在太少,大大影响应用的性能。之所
C#中HttpWebrequest使用需要认证的代理
第一句话虽然不知道干嘛的,但是好像不加也不行。
HttpWebRequest(未授权设置) 即需要身份验证设置
1.第一步:开启IIS基本身份验证 2.第二步:如下图设置(ZT158代表域名),如果本机账号,则直接是机器器即可 ybcxj是账号,aa00000是密码
C# WebRequest 远程服务器返回错误: (403) 已禁止
通常,在C#中,当我们得到一个文件的下载地址,可以在代码里通过HttpWebRequest来下载该文件。而有时候,由于访问站点的原因,会拒绝为没有提供Cookie的访问提供服务。        在最近的代码中遇到了这个问题,在我的问题中,只需添加一行代码 request.CookieContainer = new CookieContainer();即可。意思很简单,为HttpWebReques
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 net微信公众号开发教程 微信.net开发教程