SetCookie Methode der CookieContainer-wirft exception
Habe ich diese cookie zurückgegeben, die von einem web-server in Set-Cookie-header:
PHPSESSID=462rutd8g0sbg9sinh3hqa2ol6;
Pfad=/,wordpress_test_cookie=WP+Cookie+check;
Pfad=/,[email protected];
expires=Sun, 01-Jul-2012 05:11:02 GMT; path=/wp-content/plugins;
httponly -, [email protected];
expires=Sun, 01-Jul-2012 05:11:02 GMT; path=/wp-admin;
httponly -, wordpress_logged_in_ca07030412dd7fcd4dbeaae0bd9f5df9=testemail@example.com;
expires=Sun, 01-Jul-2012 05:11:02 GMT; path=/; httponly
Ich versuche, mit CookieContainer.SetCookies(new Uri(url),cookie);
Aber es wirft Ausnahme{"Ein Fehler ist aufgetreten beim Parsen der Cookie-header für Uri 'http://www.smallbizads.us/'."} System.FormatException {System.Net.CookieException'
Einige Graben zeigt, dass SetCookies verwendet , um brechen die cookies. Aber das wird nicht funktionieren, offensichtlich, weil ich Expires-header, die hat auch ,
Irgendeine Idee, wie kann ich dieses Problem umgehen?
Hinweis: ich kann diese Methode nur verwenden, durch das Holen von cookie aus Set-Cookie
header durch WordPress-Problem. Also bitte nicht vorschlagen, jede andere option.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dauerte eine Weile, es zu zergliedern.
Soweit ich sehen kann, Sie möchten die PHPSESSID (PHP-Session-Id) generiert, die von WordPress für eine domain (.smallbizads.us) für mehrere Wege. Das Ablaufdatum ist immer der gleiche.
Zuerst nehmen Sie Ihre cookie-header:
Teilen Sie es durch die '; ' - Trennzeichen.
Sie wind-up mit einer Liste mit 12 items. Zum Beispiel:
Wird das Ablaufdatum angezeigt, mehrere Male in diese Liste, aber es hat immer den gleichen Wert.
Nehmen Sie einfach das erste Ablaufdatum und konvertieren Sie es in ein DateTime.
OK, jetzt Holen wir den Wert für das cookie. Die session-id:
Erhalten nun die Pfade für die Sie brauchen, um das cookie.
Nun können Sie die cookies über ein CookieContainer und das System.Net.Cookie-Klasse.
Stellt fest, dass die Tag-der-Woche fügt keine zusätzlichen Informationen und, das Datum kann analysiert werden, ohne Sie können wir einen Regex verwenden, entfernen Sie das Tag und Komma. Hier ist eine Erweiterung Methode zu verwenden anstelle von
CookieContainer.SetCookies()
.