簡體   English   中英

如何強制Java的HttpClient接受無效的cookie?

[英]How can I force Java's HttpClient to accept invalid cookies?

我正在處理登錄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 Draft策略,看看其寬松的限制是否適用於WordPress cookie。

您可以實施自己的Cookie策略。
請參閱本HTTPClient指南中的第3.6章。

您可以注冊更寬松的Cookie策略嗎?

我認為,您可以下載httpclient的源代碼,找到log.warn ...的位置,可以將其刪除。 我是這樣

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM