Comment puis-je parcourir une page par programme?

c# html-agility-pack

Question

J'ai vu de nombreux exemples sur la façon d'obtenir le contenu d'un URI. J'ai aussi beaucoup utilisé HTMLAgilityPack. Ce que je veux, c'est créer un environnement de test unitaire pour les sites Web asp.

J'ai vu la BrowserSession et cette question, mais bien que le processus semble correct , ils ne se connectent pas à un site Web. J'ai essayé de nombreux sites Web bien connus.

Des idées sur la façon de parcourir le code?

Réponse populaire

Il semble que vous souhaitiez soumettre un formulaire sur une page Web et afficher la réponse HTML à l'arrière de la page résultante.

Cette méthode utilisera une URL de formulaire et soumettra une publication avec les arguments nommés donnés dans le dictionnaire parms.

J'ai utilisé la méthode ci-dessous pour effectuer l'authentification par mot de passe sur une page Web et afficher la réponse après l'authentification. Vous devrez connaître l'URL cible et les champs de formulaire que vous souhaitez transmettre dans la demande.

private string SubmitRequest(string url, Dictionary<string, string> parms)
{
    var req = WebRequest.Create(url);
    req.Method = "POST";

    string parmsString = string.Join("&", parms.Select(p => string.Format("{0}={1}", p.Key, p.Value)));
    req.ContentLength = parmsString.Length;

    using (StreamWriter writer = new StreamWriter(req.GetRequestStream()))
    {
        writer.Write(parmsString);
        writer.Close();
    }

    var res = req.GetResponse();

    using (StreamReader reader = new StreamReader(res.GetResponseStream()))
    {
        string response = reader.ReadToEnd();
        reader.Close();
        return response;
    }
}

Si vous voulez quelque chose de plus spécifique ou si ce n'est pas ce que vous cherchez, alors postez un commentaire.




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi