Ich erstelle eine Anwendung für den Datenabruf von der Webseite. Die Seite ist passwortgeschützt und wenn sich der Benutzer anmeldet, wird der Cookie erstellt.Wie verwendet man Cookies mit HttpWebRequest
Um die Daten abzurufen, muss sich die Anwendung zuerst anmelden: Web-Anfrage mit Benutzername und Passwort erstellen und den Cookie speichern. Wenn der Cookie gespeichert ist, muss er in die Header aller Anfragen eingefügt werden.
hier ist die Methode, die Anfragen und ruft den Inhalt macht:
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();
}
}
Wer weiß, wie diese Methode zu ändern, um ein Cookie in den Header hinzufügen?
Unten ist der Druckbildschirm der Header-Struktur der mit dem Browser vorgenommen Anfrage:
alt text http://img404.imageshack.us/img404/4793/cookiea.jpg
ich auch dankbar wäre, wenn jemand eine Möglichkeit zum Speichern von Cookie aus der Antwort (wenn die Anwendung macht vorgeschlagen eine Anfrage http: xxx.xxx.xxx/login? Benutzername = xxx & Passwort = xxx der Cookie wird erstellt und muss für zukünftige Anfragen gespeichert werden).
ich es eigentlich gar nicht bekommen. Warum sollten Sie einen frisch erstellten Cookiecontainer (also leer) in die Anfrage einfügen, die Sie gerade senden möchten? Sollte es nicht viel logischer sein, dass Sie diesen cookieContainer später mit der Antwort füllen müssen? Gibt es einen Grund, warum es so ist? edit: Auf diese Weise werden viele Antworten gegeben, aber ich kann einfach nicht herausfinden, warum es so gemacht wurde. – deltu100
Meine Anwendung hat ein unerwünschtes Verhalten. Die Verwendung von httpWebRequest2.Headers.Set ("Cookie", ... funktioniert einwandfrei. – Eduardo
Wenn ich mich vorher auf der Webseite angemeldet habe, ist auf meiner HD ein Cookie gespeichert, so dass ich die Anmeldung programmatisch überspringen kann Die Web-Anfrage sucht automatisch nach Inhalten und füllt sie mit gefundenen Cookies, oder müssen Sie das manuell tun? Wie macht man das, wenn letzteres? –