如何在htmlunit中指定cookie政策以接受所有cookie?在htmlunit中的Cookie政策
3
A
回答
3
刚刚重建整个CookieManager类: 这里是类来源:http://jarvana.com/jarvana/view/net/sourceforge/htmlunit/htmlunit/2.8/htmlunit-2.8-sources.jar!/com/gargoylesoftware/htmlunit/CookieManager.java?format=ok
现在查询此方法public synchronized Set<Cookie> getCookies(final URL url)
在那里你会发现这一点:
public static final String HTMLUNIT_COOKIE_POLICY = CookiePolicy.BROWSER_COMPATIBILITY; //default
final CookieSpec spec = registry_.getCookieSpec(HTMLUNIT_COOKIE_POLICY);
for (final org.apache.http.cookie.Cookie cookie : all) {
if (spec.match(cookie, cookieOrigin)) {
matches.add(cookie);
}
}
远程规格匹配声明if (spec.match(cookie, cookieOrigin))
您应该接受所有Cookie,而不管其政策。并且/或者您可以处理ACCEPT_ALL_COOKIES标志并通过规格匹配(如果这是配置中指定的策略)。
2
有些源代码修改的解决方案。
你可以简单地删除
org.apache.http.client.protocol.ResponseProcessCookies
cookieSpec.validate(cookie, cookieOrigin);
线的HttpClient在的HtmlUnit您可以创建自己的战略,并在
com.gargoylesoftware.htmlunit.CookieManager
使用它,而不是public static final String HTMLUNIT_COOKIE_POLICY = CookiePolicy.BROWSER_COMPATIBILITY; ... final CookieSpec spec = registry_.getCookieSpec(HTMLUNIT_COOKIE_POLICY);
可选它应该取决于从构造CookieManager的参数但作者不这么认为)
/** * HtmlUnit's cookie policy is to be browser-compatible. Code which requires access to * HtmlUnit's cookie policy should use this constant, rather than making assumptions and using * one of the HttpClient {@link CookiePolicy} constants directly. */
所以,如果你想实现自己的Cookie策略或处理
CookiePolicy.BROWSER_COMPATIBILITY
不是浏览器功能的情况下,你应该修改代码。
相关问题
- 1. Cookie政策被忽略?
- 2. 用于翻译的Cookie政策
- 3. IE11停止接受跨域Cookie政策
- 4. HTMLUnit拒绝cookie
- 5. 政策
- 6. 手托政策
- 7. ORA-12406:政策
- 8. 或在风帆政策中的关系
- 9. Spike逮捕政策在Apigee
- 10. Google搜索政策
- 11. OpanLdap密码政策
- 12. 违反suexec政策
- 13. 政策轮询rss
- 14. BtsTask进口政策
- 15. WP7政策检查
- 16. Windows密码政策
- 17. 当用户更改其Cookie政策级别时,如何删除GTM Cookie?
- 18. P3P政策不允许在IE浏览器中使用第三方Cookie
- 19. 政策例外的SharePoint
- 20. Facebook的隐私政策
- 21. .Net发布者政策 - 原创发布者政策文件?
- 22. 在Alfresco政策绑定的条件
- 23. GAC中的发布者政策
- 24. Android中的Google Apps设备政策
- 25. JavaFX的HBox中调整政策
- 26. HtmlUnit对cookie和窗口的怀疑
- 27. 政策设计,默认
- 28. Selinux政策 - 不工作
- 29. AWS S3政策混淆
- 30. AWS信任政策澄清
@Mat Banik,我发布了一些答案,但它不是很好。 – 2011-01-14 17:58:37
我发现,而不是调整cookie政策,最好是看看为什么cookie被拒绝 - 并修复。 – mauhiz 2014-07-15 04:23:53