Manchmal müssen Sie möglicherweise eine "Login" URL aufrufen und eine Art Benutzername / Passwort eingeben. Der Webservice wird dann normalerweise ein Cookie zurückgeben, das Sie in nachfolgenden Anfragen verwenden können.
Wie kann ich diesen Cookie im folgenden Code (C # .NET) richtig speichern?
cookies = new CookieContainer();
HttpWebResponse response = (HttpWebResponse)req.GetResponse();
if (response.StatusCode == HttpStatusCode.OK)
{
cookies = req.CookieContainer; //*choice 1*
cookies.Add(req.CookieContainer.GetCookies(uri)); //*choice 2*
cookies.Add(response.Cookies); //*choice 3*
}
Bei Auswahl 1 scheint es keine Möglichkeit zu geben, den zurückgegebenen CookieContainer an einen bestehenden CookieContainer anzuhängen (wenn ich andere Cookies speichere).
Antworten:
1 für die Antwort № 1Sie sollten Ihren vorhandenen Cookie-Container an den Server übergeben, er wird ihn zurückgeben und alle Änderungen, die er vorgenommen hat. Das ist das normale Verhalten von Webservern - sie bereinigen Cookies selten.
d. h. erstellen Sie zunächst einen Cookie-Container, init, was immer Sie wollen, und übergeben Sie ihn dann an HttpWebResponse. Spülen, wiederholen.