我正在尝试使用httpwebrequest登录wordpress,但无法执行此操作,响应标头中有多个set-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”, “日志=用户1&安培; PWD = PASS1&安培; WP-提交=登录+在&安培; redirect_to的HTTP =://mywebsite.net/wp-admin/& testcookie = 1”
它返回登录页面,是的我已经检查了所有内容10次,如果与套接字一起使用,手动cookie处理也是如此。
手动套接字'Set-Cookie'中的cookie返回以下内容:
“wordpress_6e7750f6a474de23330d1b7f0e9990c6 = admin%7C1301040547%7C2463ecd9d363899be1129ae53287963c; path = / wp-content / plugins; httponly”
httpwebresponse中的是:
“wordpress_sec_6e7750f6a474de23330d1b7f0e9990c6 = +; expires = Tue,23-Mar-2010 08:12:00 GMT;”
此处缺少值= +
答案 0 :(得分:1)
你忘了设置HttpWebRequest.CookieContainer吗?
默认情况下,它将为null,这意味着在请求标头中不会发送任何cookie,并且不会保留响应中的cookie以供后者使用。
答案 1 :(得分:0)
我只能怀疑,所以我可能错了。每个HttpWebRequest都是一个新连接,因此会创建一个新会话。由于会话不同,cookie变为无效。我认为Encoding chunked和keep-alive表明当前的连接有点重要。
我相信您在同一个连接中使用相同的套接字来发送所有Cookie。
希望这能解释你的问题。如果没有,一些代码将有助于进一步的故障排除。