[英]When does WebRequest.GetResponse() set Connection to “Keep-Alive” c#
[英]WebRequest.GetResponse Error: Underlying Connection - C# Asp.Net
下面是此HttpWebRequest的代碼。 我想知道為什么可以在google.com或facebook.com上使用此代碼。
在下面的該特定站點上時,出現此錯誤The underlying connection was closed: An unexpected error occurred on a send.
為了使這項工作有效,我還需要在代碼中添加什么? 你們有個主意嗎? 我搜索到我需要證書或受信任的證書才能發出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靜態幫助器方法代替Create。
這樣做的原因是,您擁有一個屬性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;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.