请求被中止:在C#中,WebClient意外关闭了连接

时间:2018-06-20 06:38:03

标签: c#

我在使用WebClient和C#从Playstation页面获取html代码时遇到问题:

using (WebClient webCl = new WebClient())
{
    var url = "https://www.playstation.com/en-us/games/nioh-ps4/";

    var homeHtml = Encoding.UTF8.GetString(webCl.DownloadData(url));
    if (string.IsNullOrWhiteSpace(homeHtml))
    {
        return ...;
    }
    return ...;
}

在线:Encoding.UTF8.GetString(webCl.DownloadData(url));

我遇到错误:

  

请求被中止:连接意外关闭

为什么?我在做什么错了?

2 个答案:

答案 0 :(得分:1)

一种可能性是您的防火墙不允许您的应用程序通过。调整您的安全设置,以允许该应用通过,然后重试。

另一种可能性是,如果您爬网或连接速度过快,服务器将限制您的连接。通过以非常有限的价格与其他服务器(例如google.com)一起运行来验证代码。

其他可能性包括服务器不喜欢的其他功能。例如,您可能需要添加用户代理标头:

request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2";

或者您可能需要玩Cookie。

您可以使用Fiddler比较浏览器和应用程序请求之间的差异并进行相应调整。

答案 1 :(得分:0)

这是由于URL访问问题引起的。可能由于多种情况而发生

  1. 无法从您的计算机访问HOST。
  2. 主机拒绝请求。
  3. 防火墙阻止了请求

尝试ping www.playstation.com。您应该得到答复。