3

我正在编写一个登录 WordPress 的脚本,但是,HttpClient 的 cookie 策略将 WordPress 设置的 cookie 识别为无效:

May 17, 2009 12:07:43 PM org.apache.commons.httpclient.HttpMethodBase processCookieHeaders
WARNING: Cookie rejected: "$Version=0; wordpress_dce2080bc042b2e639e4f5b3b704aa43=admin%7C1243786064%7C4c56aef46b1210d3d43d8b829fdf4d9a; $Path=/wp-content/plugins". Illegal path attribute "/wp-content/plugins". Path of origin: "/wp-login.php"
May 17, 2009 12:07:43 PM org.apache.commons.httpclient.HttpMethodBase processCookieHeaders
WARNING: Cookie rejected: "$Version=0; wordpress_dce2080bc042b2e639e4f5b3b704aa43=admin%7C1243786064%7C4c56aef46b1210d3d43d8b829fdf4d9a; $Path=/wp-admin". Illegal path attribute "/wp-admin". Path of origin: "/wp-login.php"

如果没有 cookie 支持,脚本将无法登录。我怎样才能解决这个问题?

(使用 HttpClient 3.1)

4

6 回答 6

6

检查这篇文章以获得更多提示: Java HtmlUnit - 无法登录到 wordpress

在类似情况下,我能够使用以下代码(尽管我承认它在特定的 wordpress 案例中不起作用):

HttpClient client = new HttpClient();
client.getParams().setParameter("http.protocol.single-cookie-header", true);
client.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
于 2011-01-04T15:07:15.440 回答
2

HttpClient 是世界上唯一尊重 RFC 的东西。我提出了一个要求,以打击整个前缀路径。有很多站点将路径设置为他们然后将您转发到的路径。这是一件非常有用的事情。由于 Chrome、IE、Firefox、Safari、Opera 和其他所有浏览器都不关心,我认为 HTTPClient 应该停止关心,这样我们才能继续我们的生活。

于 2013-12-20T21:54:04.887 回答
1

看看这个页面HttpClient Cookie Guide,看看调整 cookie 策略是否能解决您的问题。

编辑:

更具体地说,尝试 Netscape Draft 策略,看看它的宽松限制是否适用于 WordPress cookie。

于 2009-05-17T16:27:09.970 回答
0

您可以注册自己的更宽松的 Cookie 政策吗?

于 2009-05-18T18:18:39.107 回答
0

您可以实施自己的 cookie 政策。请参阅本HTTPClient 指南
中的第 3.6 章。

于 2013-07-07T11:21:03.400 回答
-1

在我看来,你可以下载httpclient的源代码,找到log.warn ...的位置,可以删除它们。我这样做了。

于 2012-03-31T07:48:16.117 回答