Un moyen d'obtenir le code HTML d'une page Web même lorsque l'en-tête est défini sur 404? Certaines pages contiennent encore du texte, et dans mon cas, j'ai besoin de lire ce texte.Comment obtenir le code HTML d'une page en C# lorsque les en-têtes sont définis sur HTTP/1.0 404 Not Found
Exemple de code C# pour obtenir HTML:
public static string GetHtmlFromUri(string resource)
{
string html = string.Empty;
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(resource); //Errors here.
using (HttpWebResponse resp = (HttpWebResponse)req.GetResponse())
{
bool isSuccess = (int)resp.StatusCode < 299 && (int)resp.StatusCode >= 200;
if (isSuccess)
{
using (StreamReader reader = new StreamReader(resp.GetResponseStream()))
{
html = reader.ReadToEnd();
}
}
}
return html;
}
Et voici une page que j'ai créé pour tester cela avec 404 erreurs: http://bypass.rd.to/headertest.php
Si vous regardez dans l'en-tête, vous verrez que est un 404, mais le texte peut être lu. Maintenant, essayez d'obtenir la page en C# ...
MessageBox.Show(GetHtmlFromUri("http://bypass.rd.to/headertest.php"));
System.Net.WebException was unhandled
Message="The remote server returned an error: (404) Not Found."
Source="System"
StackTrace: at System.Net.HttpWebRequest.GetResponse()