This question already has answers here:
How to get status code from webclient?

(10个答案)


6年前关闭。




所以我有这段代码,我正在尝试查找Twitter/吗?在twitter.com/name的源代码中(用于验证用户是否存在)
当用户存在时,它可以正常工作,而当用户不存在时,它会显示404错误并停止。无论如何,有没有忽略404错误并使它仍然查看该页面的源代码的信息?因为如果我们转到ex:view-source:https://twitter.com/pogosode,它不存在,但是我们仍然可以看到源。
foreach (Membre noms in p_nom)
        {
            string websiteName = "https://twitter.com/" + noms.NomMembre;
            string source = (new WebClient()).DownloadString(websiteName);
            if (source.Contains("<title>Twitter / ?</title>"))
                {
                p_disponible.Add(new MembreVerifier(noms.NomMembre));
                }
        }

最佳答案

您可以捕获WebException异常,并从Response属性读取响应。

例:

foreach (Membre noms in p_nom)
{
    string source = "";
    try
    {
        string websiteName = "https://twitter.com/" + noms.NomMembre;
        source = (new WebClient()).DownloadString(websiteName);
    }
    catch (WebException ex)
    {
        using (var stream = ex.Response.GetResponseStream())
        {
            // Copy stream to buffer.
            var buffer = new byte[stream.Length];
            stream.Read(buffer, 0, (int)stream.Length);

            // Decode byte array to UTF-8 string.
            source = Encoding.UTF8.GetString(buffer);
        }
    }

    if (source.Contains("<title>Twitter / ?</title>"))
    {
         p_disponible.Add(new MembreVerifier(noms.NomMembre));
    }
}

关于c# - C#404错误(Webclient),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20890739/

10-10 16:31