本文介绍了无法从传输连接中读取数据:远程主机强行关闭了现有连接的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
当我尝试从morizon.pl下载源页面时遇到问题:
I have problem when I try download source page from morizon.pl:
WebClient webClient = new WebClient();
try
{
string str = webClient.DownloadString("https://www.morizon.pl/");
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
我检查了stackoverflow中的类似问题,并编辑了代码,但还是一无所获,我被这个问题困住了.
I checked similar problem in stackoverflow and edit my code and still nothing, I'm stuck with this problem.
public class CookieAwareWebClient : WebClient
{
public CookieContainer CookieContainer { get; set; }
public CookieAwareWebClient()
: this(new CookieContainer())
{ }
public CookieAwareWebClient(CookieContainer c)
{
this.CookieContainer = c;
}
protected override WebRequest GetWebRequest(Uri address)
{
WebRequest request = base.GetWebRequest(address);
var castRequest = request as HttpWebRequest;
if (castRequest != null)
{
castRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8";
castRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.104 Safari/537.36";
castRequest.Headers.Add("Accept-Encoding", "gzip,deflate,sdch");
castRequest.Headers.Add("Accept-Language", "en-GB,en-US;q=0.8,en;q=0.6");
castRequest.KeepAlive = false;
castRequest.ProtocolVersion = HttpVersion.Version10;
castRequest.ServicePoint.ConnectionLimit = 1;
castRequest.CookieContainer = this.CookieContainer;
}
return request;
}
}
例如google.com,我可以使用我的函数进行下载,但morizon.pl我不能.
For example google.com I can download with my function but morizon.pl I cannot.
推荐答案
从.NET Framework 4.0开始,默认安全协议为TLS 1.0
和SSL 3.0
.
As of .NET Framework 4.0 the default security protocol is TLS 1.0
and SSL 3.0
.
在您的应用程序中,您可能需要启用TLS 1.1
和/或TLS 1.2
.
In your application you may need to enable either TLS 1.1
and/or TLS 1.2
.
System.Net.ServicePointManager.SecurityProtocol |=
SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
using (WebClient webClient = new WebClient())
{
string str = webClient.DownloadString("https://www.morizon.pl/");
}
此 stackoverflow帖子中的更多详细信息.
这篇关于无法从传输连接中读取数据:远程主机强行关闭了现有连接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!