Question

Comment vous connecter à une page Web et récupérer son contenu en C #?

Était-ce utile?

La solution 4

string postData = "userid=ducon";
            postData += "&username=camarche" ;
            byte[] data = Encoding.ASCII.GetBytes(postData);
            WebRequest req = WebRequest.Create(
                URL);
            req.Method = "POST";
            req.ContentType = "application/x-www-form-urlencoded";
            req.ContentLength = data.Length;
            Stream newStream = req.GetRequestStream();
            newStream.Write(data, 0, data.Length);
            newStream.Close();
            StreamReader reader = new StreamReader(req.GetResponse().GetResponseStream(), System.Text.Encoding.GetEncoding("iso-8859-1"));
            string coco = reader.ReadToEnd();

Autres conseils

Cela dépend de ce qui est nécessaire pour vous connecter. Vous pouvez utiliser un client Web pour envoyer les informations de connexion à la page de connexion du serveur (via la méthode requise, GET ou POST), mais cela ne conserverait pas un cookie. Il existe un méthode pour obtenir un client Web qui gère les cookies, afin vous pouvez simplement poster les informations de connexion sur le serveur, puis demander la page que vous voulez avec le même client Web, puis faire ce que vous voulez avec la page.

Regardez System.Net.WebClient ou pour des exigences plus avancées System.Net.HttpWebRequest / System.Net.HttpWebResponse .

Pour ce qui est de les appliquer, vous devrez étudier le code source HTML de chaque page que vous souhaitez supprimer afin de connaître exactement les requêtes HTTP attendues.

Comment voulez-vous dire "login"?

Si le sous-dossier est protégé au niveau du système d'exploitation et que le navigateur affiche une boîte de dialogue de connexion lorsque vous y accédez, vous devez définir la propriété Credentials sur le HttpWebRequest.

Si le site Web possède son propre système d’adhésion / de connexion basé sur des cookies, vous devrez utiliser HttpWebRequest pour la première réponse au formulaire de connexion.

Utilisez le WebClient classe.

Dim Html As String

Using Client As New System.Net.WebClient()
    Html = Client.DownloadString("http://www.google.com")
End Using

Vous pouvez utiliser la construction de l'objet WebClient au lieu de créer la demande vous-même.

WebClient wc = new WebClient();
wc.Credentials = new NetworkCredential("username", "password");
string url = "http://foo.com";          
try
{
    using (Stream stream = wc.OpenRead(new Uri(url)))
    {
        using (StreamReader reader = new StreamReader(stream))
        {
            return reader.ReadToEnd();
             }
    }
}
catch (WebException e)
{
    //Error handeling
}

Essayez ceci:

public string GetContent(string url)  
{ 
  using (System.Net.WebClient client =new System.Net.WebClient()) 
  { 
  return client.DownloadString(url); 
  } 
} 
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top