WebRequest.GetResponse错误:底层连接-C#Asp.Net
下面是我的HttpWebRequest代码。我想知道为什么我可以在google.com或facebook.com上使用这个代码 在下面这个特定的站点上,我遇到了以下错误WebRequest.GetResponse错误:底层连接-C#Asp.Net,c#,asp.net,C#,Asp.net,下面是我的HttpWebRequest代码。我想知道为什么我可以在google.com或facebook.com上使用这个代码 在下面这个特定的站点上,我遇到了以下错误底层连接已关闭:发送时发生意外错误。 我还需要在代码中添加什么才能使其正常工作?你们有什么想法吗?我搜索到我需要证书或可信证书来发出http请求,但如何在代码中实现这一点 protected void Button1_Click(object sender, EventArgs e) { WebRequest MyWebR
底层连接已关闭:发送时发生意外错误。
我还需要在代码中添加什么才能使其正常工作?你们有什么想法吗?我搜索到我需要证书或可信证书来发出http请求,但如何在代码中实现这一点
protected void Button1_Click(object sender, EventArgs e)
{
WebRequest MyWebRequest;
WebResponse MyWebResponse;
StreamReader sr;
string strHTML;
StreamWriter sw;
MyWebRequest = HttpWebRequest.Create("https://qiita.com/naoki_mochizuki/items/3fda1ad6594c11d7b43c");
MyWebResponse = MyWebRequest.GetResponse();
sr = new StreamReader(MyWebResponse.GetResponseStream());
strHTML = sr.ReadToEnd();
string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
sw = File.CreateText(@path +"\\"+TextBox1.Text+"");
sw.WriteLine(strHTML);
sw.Close();
}
使用CreateHttp静态助手方法而不是创建 原因是您有一个属性
ServerCertificateValidationCallback
,它是一个委托,允许您自定义认证验证操作
在下面的例子中,我将其设置为静态返回true以继续或允许请求
HttpWebRequest MyWebRequest;
WebResponse MyWebResponse;
StreamReader sr;
string strHTML;
StreamWriter sw;
MyWebRequest = (HttpWebRequest)HttpWebRequest.Create("https://qiita.com/naoki_mochizuki/items/3fda1ad6594c11d7b43c");
MyWebRequest.ServerCertificateValidationCallback = (snd, cert, chain, err) => true;
我添加了这个代码来解决这个问题
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
如何声明servercertificatevalidationcallback?使用system.certificate?诸如此类?我不明白如何声明servercertificatevalidationcallback,你是什么意思?ServerCertificateValidationCallback是HttpWebRequest的成员属性。错误1“System.Net.WebRequest”不包含“ServerCertificateValidationCallback”的定义,并且找不到接受类型为“System.Net.WebRequest”的第一个参数的扩展方法“ServerCertificateValidationCallback”(是否缺少using指令或程序集引用?请显示我的编辑。变量MyWebRequest请将类型从WebRequest更改为
HttpWebRequest
。错误1'System.Net.HttpWebRequest'不包含'CreateHttp'的定义错误2无法在此范围内声明名为'sender'的局部变量,因为它将我对“发送者”有不同的含义,它已经在“父级或当前”范围中用于表示其他内容