Java HtmlUnit - 无法登录到wordpress

Ron*_*Ron 6 htmlunit apache-httpclient-4.x

我正在尝试使用HtmlUnit登录我当地的wordpress网站,但它似乎有一个cookie问题.

这就是代码的开头:

WebClient webClient = new WebClient();
HtmlPage loginPage = webClient.getPage("http://localhost/flowersWp/wp-admin");
HtmlForm form = loginPage.getFormByName("loginform");
Run Code Online (Sandbox Code Playgroud)

这就是我在日志中得到的.有人有想法吗?谢谢.

2010年11月27日12:43:35 org.apache.http.client.protocol.ResponseProcessCookies processCookies警告:Cookie被拒绝:"[version:0] [name:wordpress_2418eeb845ebfb96f6f1a71ab8c5625a] [value:+] [domain:localhost] [path :/ flowersWp/wp-admin] [expiry:Fri Nov 27 12:43:35 IST 2009]".非法路径属性"/ flowersWp/wp-admin".原产地:"/ flowersWp/wp-login.php"

Dan*_*lor 7

WebClient正在使用apache httpclient,因此它是一个HttpClient问题.

根据我的经验,它与重定向有关.我已经使用HttpClient摆脱了这个问题,并注册了我自己的cookie支持:

  // Create a local instance of cookie store
  CookieStore cookieStore = new BasicCookieStore();

  // Bind custom cookie store to the local context
  httpclient.setCookieStore(cookieStore);
  CookieSpecFactory csf = new CookieSpecFactory() {
      public CookieSpec newInstance(HttpParams params) {
          return new BrowserCompatSpec() {
              @Override
              public void validate(Cookie cookie, CookieOrigin origin)
              throws MalformedCookieException {
                // Oh, I am easy.
                // Allow all cookies
                log.debug("custom validate");
              }
          };
      }
  };
  httpclient.getCookieSpecs().register("easy", csf);
  httpclient.getParams().setParameter(
       ClientPNames.COOKIE_POLICY, "easy"); 
Run Code Online (Sandbox Code Playgroud)

好吧,在HtmlUnit中我没有直接访问httpclient,但我正在考虑更改其源代码,因为我需要通过JavaScript支持连接到wordpress.