猿问

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

我在使用 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));


我有错误:


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


为什么?我做错了什么?


蓝山帝景
浏览 688回答 2
2回答

斯蒂芬大帝

一种可能性是您的防火墙不允许您的应用程序通过。调整您的安全设置以允许应用通过并重试。另一种可能性是服务器正在限制您的连接,如果您爬行或点击它太快。通过以非常有限的速率在其他服务器(例如: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";或者你可能需要玩饼干。您可以使用 Fiddler 比较浏览器和应用程序请求之间的差异并进行相应调整。

牧羊人nacy

这是由于 URL 访问问题。它可能由于多种情况而发生无法从您的机器访问 HOST。主机拒绝请求。防火墙阻止请求尝试 ping www.playstation.com。你应该得到回应。
随时随地看视频慕课网APP
我要回答