如何强制Java的HttpClient接受无效的cookie?

我正在编写一个登录到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)

查看这篇文章以获取进一步的提示: Java HtmlUnit – 无法登录到wordpress

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

 HttpClient client = new HttpClient(); client.getParams().setParameter("http.protocol.single-cookie-header", true); client.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY); 

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

看看这个页面, HttpClient Cookie指南 ,看看调整cookie政策是否可以解决您的问题。

编辑:

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

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

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

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