Sto creando un'applicazione per il recupero dei dati dalla pagina web. La pagina è protetta da password e quando l'utente accede al cookie viene creato.come utilizzare i cookie con HttpWebRequest
Per recuperare i dati, l'applicazione deve prima accedere: effettuare una richiesta web con nome utente e password e memorizzare il cookie. Quindi, quando il cookie viene memorizzato, deve essere aggiunto agli header di tutte le richieste.
qui è il metodo che rende le richieste e recupera il contenuto:
public void getAsyncDailyPDPContextActivationDeactivation()
{
HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(dailyPDPContextActivationDeactivation);
IAsyncResult asyncResult = httpWebRequest.BeginGetResponse(null, null);
asyncResult.AsyncWaitHandle.WaitOne();
using (HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.EndGetResponse(asyncResult))
using (StreamReader responseStreamReader = new StreamReader(httpWebResponse.GetResponseStream()))
{
string responseText = responseStreamReader.ReadToEnd();
}
}
Qualcuno sa come modificare questo metodo al fine di aggiungere un cookie nell'intestazione?
Di seguito si riporta la schermata di stampa della struttura dell'intestazione della richiesta con il browser:
alt text http://img404.imageshack.us/img404/4793/cookiea.jpg
sarei anche grato se qualcuno ha suggerito un modo per memorizzare dei cookie dalla risposta (quando le fa la domanda una richiesta http: xxx.xxx.xxx/login? username = xxx & password = xxx il cookie viene creato e deve essere memorizzato per richieste future).
Io non capisco davvero. Perché dovresti mettere un cookiecontainer appena creato (quindi è vuoto) nella richiesta che stai per inviare? Non dovrebbe essere molto più logico che tu debba riempire più tardi quel cookieContainer con la risposta? C'è una ragione è così? modifica: Molte risposte sono date in questo modo, ma non riesco a capire perché è fatto in questo modo. – deltu100
La mia applicazione ha un comportamento indesiderato che usa quello. Usando httpWebRequest2.Headers.Set ("Cookie", ... funziona bene – Eduardo
Se ho già effettuato l'accesso alla pagina Web, c'è un cookie memorizzato sul mio HD in modo da poter saltare l'accesso in modo programmatico. la richiesta web cerca automaticamente e popola il contenitore con i cookie trovati, o devi farlo manualmente? Come si fa a farlo, se quest'ultimo? –