Come accedi a una pagina Web e recupera il suo contenuto in C #?

Come accedi a una pagina Web e recupera il suo contenuto in C #?

Ciò dipende da cosa è necessario accedere. Potresti utilizzare un client Web per inviare le credenziali di accesso alla pagina di accesso del server (tramite qualsiasi metodo richiesto, GET o POST), ma ciò non dovrebbe mantenere un cookie. C’è un modo per ottenere un client Web per gestire i cookie, in modo da poter POST solo le informazioni di accesso al server, quindi richiedere la pagina che si desidera con lo stesso webclient, quindi fare ciò che si desidera con la pagina.

Guarda System.Net.WebClient o per i requisiti più avanzati System.Net.HttpWebRequest/System.Net.HttpWebResponse .

Per quanto riguarda l’effettiva applicazione di questi: dovrai studiare il codice html di ogni pagina che vuoi analizzare per sapere esattamente quali richieste Http si aspettano.

Come intendi “login”?

Se la sottocartella è protetta a livello di sistema operativo e il browser si apre in una finestra di dialogo di accesso quando ci si sposta, è necessario impostare la proprietà Credentials su HttpWebRequest.

Se il sito Web ha il proprio sistema di appartenenza / login basato su cookie, sarà necessario utilizzare HttpWebRequest per la prima risposta al modulo di accesso.

 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(); 

Utilizzare la class WebClient .

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

Puoi usare la build in WebClient Object invece di crearla tu stesso.

 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 } 

Prova questo:

 public string GetContent(string url) { using (System.Net.WebClient client =new System.Net.WebClient()) { return client.DownloadString(url); } }