HttpWebRequest с несколькими Set-Cookie - PullRequest
0 голосов
/ 23 марта 2011

Я пытаюсь войти в WordPress с помощью httpwebrequest, но не могу этого сделать, в заголовке ответа есть несколько файлов cookie, несколько файлов cookie потеряно и поэтому не могу отобразить панель управления, однако я могу войти с помощью сокетов , но так как все мое кодирование построено с использованием httwebrequest, я не могу переключиться на сокеты.

заголовки ответа

(Status-Line)   HTTP/1.1 302 Moved Temporarily
Date             Wed, 23 Mar 2011 07:52:24 GMT
Server         Apache
X-Powered-By    PHP/5.2.17
Expires:        Wed, 11 Jan 1984 05:00:00 GMT
Cache-Control   no-cache, must-revalidate, max-age=0
Pragma         no-cache
Set-Cookie     wordpress_test_cookie=WP+Cookie+check; path=/
Set-Cookie     wordpress_6e7750f6a474de23330d1b7f0e9990c6=admin%7C1301039544%7C16d39b9f49cf062500d50471df7320e9; path=/wp-content/plugins; httponly
Set-Cookie     wordpress_6e7750f6a474de23330d1b7f0e9990c6=admin%7C1301039544%7C16d39b9f49cf062500d50471df7320e9; path=/wp-admin; httponly
Set-Cookie     wordpress_logged_in_6e7750f6a474de23330d1b7f0e9990c6=admin%7C1301039544%7C0b2d990d7cc420c4203fbce464c285b2; path=/; httponly
Last-Modified   Wed, 23 Mar 2011 07:52:24 GMT
Location         http://breakingnewstoday.net/wp-admin/
Keep-Alive     timeout=3, max=100
Connection     Keep-Alive
Transfer-Encoding   chunked
Content-Type    text/html; charset=UTF-8

Пожалуйста, кто-нибудь может подсказать, как использовать httpwebrequest для работы, перезаписать ли httpwebrequest для обработки файлов cookie из потока, если да, то как мне это сделать?

Об использовании сообщения HttpWebRequest ("http://mywebsite.net/wp-login.php", «Журнал = user1 и PWD = pass1 и сор подать = Log + В & redirect_to = http://mywebsite.net/wp-admin/&testcookie=1"

возвращает страницу входа, да, я проверил все 10 раз, и то же самое работает, если используется с сокетами, с ручной обработкой файлов cookie.

cookie в ручном сокете 'Set-Cookie' возвращает следующее:

"wordpress_6e7750f6a474de23330d1b7f0e9990c6 = admin% 7C1301040547% 7C2463ecd9d363899be1129ae53287963c; путь = / wp-content / plugins; httponly"

То же самое в httpwebresponse:

"wordpress_sec_6e7750f6a474de23330d1b7f0e9990c6 = +; истекает = вт, 23 марта 2010 г. 08:12:00 по Гринвичу;"

здесь значение отсутствует = +

Ответы [ 2 ]

1 голос
/ 23 марта 2011

Вы забыли установить HttpWebRequest.CookieContainer?

По умолчанию это значение будет нулевым, то есть файлы cookie не будут отправляться в заголовке запроса, и файлы cookie из ответа не будут сохраняться для последующего использования.

0 голосов
/ 23 марта 2011

Я могу только подозревать, поэтому я могу ошибаться. Каждый запрос HttpWebRequest является новым соединением, и поэтому создается новый сеанс. Файлы cookie становятся недействительными из-за другого сеанса. Я думаю, что кодирование по частям и поддержание активности показывает, что текущее соединение несколько важно.

Я полагаю, что вы используете один и тот же сокет в том же соединении для отправки всех ваших файлов cookie.

Надеюсь, это объясняет вашу проблему. Если нет, то немного кода будет полезно для дальнейшего устранения неполадок.

...