无法使用System.Net.WebResponse加载网页

时间:2013-03-18 10:11:54

标签: c# http

我使用下一个代码加载网页内容:

    private string HttpGet(string uri)
    {
        WebRequest webRequest = WebRequest.Create(uri);
        try
        { 
            WebResponse webResponse = webRequest.GetResponse();
            StreamReader sr = new StreamReader(webResponse.GetResponseStream(), Encoding.GetEncoding("utf-8"), false);
            return sr.ReadToEnd().Trim();
        }
        catch (WebException ex)
        {
            MessageBox.Show(ex.Message, "HttpGet: Response error",
               MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
        return null;
    }

在大多数情况下,我实际上获得了HTML内容。它适用于http; // stackoverflow.com,但是如果你尝试加载http; // www.icetrade.by(我知道分号,只是不想让它们成为链接),它可以正常工作在Web浏览器中,即使没有启用JavaScript,您也会得到类似的结果:

<br />
<b>Fatal error</b>:  Class name must be a valid object or a string in <b>K:\hosting\icetrade.by\html\includes\module.class.php</b> on line <b>141</b><br />

这种行为的原因是什么?如何获得真正的HTML内容?

1 个答案:

答案 0 :(得分:1)

这绝对是服务器端错误。当某些标题(例如UserAgent或Cookies不存在)时,该网站可能无法处理这种情况。

如果这是您控制的网站,请检查module.class.php第141行的内容