java - HttpClient - logs in, then loses cookie -
i've been banging head against wall on past couple of days , can't work out i'm praying can me it.
basically i'm logging wordpress account, post login details , cookie shows i'm logged in, try access user maintenance panel , redirected logon page. when cycle through cookies seems logon cookie has gone. i'm using new v4 httpclient, supposedly has better cookie management.
if has idea of going on, i'd appreciate it.
here functional example:
import org.apache.http.httpentity; import org.apache.http.httpresponse; import org.apache.http.namevaluepair; import org.apache.http.client.entity.urlencodedformentity; import org.apache.http.client.methods.httpget; import org.apache.http.client.methods.httppost; import org.apache.http.cookie.cookie; import org.apache.http.impl.client.defaulthttpclient; import org.apache.http.message.basicnamevaluepair; import org.apache.http.protocol.http; import org.apache.http.util.entityutils; import java.util.arraylist; import java.util.list; public class formlogindemo { public static void main(string args[]) { try { defaulthttpclient httpclient = new defaulthttpclient(); httpget httpget = new httpget("http://www.articlepub.com/wp-login.php"); httpresponse response = httpclient.execute(httpget); httpentity entity = response.getentity(); system.out.println("login form get: " + response.getstatusline()); if (entity != null) { entityutils.consume(entity); } system.out.println("initial set of cookies:"); list<cookie> cookies = httpclient.getcookiestore().getcookies(); if (cookies.isempty()) { system.out.println("none"); } else { (cookie cooky : cookies) { system.out.println("- " + cooky.tostring()); } } httppost httpost = new httppost("http://www.articlepub.com/wp-login.php"); list <namevaluepair> nvps = new arraylist<namevaluepair>(); nvps.add(new basicnamevaluepair("log", "***********")); nvps.add(new basicnamevaluepair("pwd", "***********")); nvps.add(new basicnamevaluepair("rememberme", "forever")); nvps.add(new basicnamevaluepair("redirect_to", "http://some-wp-site.com/wp-admin/")); nvps.add(new basicnamevaluepair("testcookie", "1")); nvps.add(new basicnamevaluepair("wp-submit", "log in")); httpost.setentity(new urlencodedformentity(nvps, http.utf_8)); response = httpclient.execute(httpost); entity = response.getentity(); system.out.println("login form get: " + response.getstatusline()); if (entity != null) { entityutils.consume(entity); } system.out.println("post logon cookies:"); cookies = httpclient.getcookiestore().getcookies(); if (cookies.isempty()) { system.out.println("none"); } else { (cookie cooky : cookies) { system.out.println("- " + cooky.tostring()); } } httpget httpget = new httpget("http://www.articlepub.com/wp-admin/"); response = httpclient.execute(httpget); entity = response.getentity(); system.out.println("page contents: " + entityutils.tostring(entity)); system.out.println("login form get: " + response.getstatusline()); if (entity != null) { entityutils.consume(entity); } system.out.println("post cookies:"); cookies = httpclient.getcookiestore().getcookies(); if (cookies.isempty()) { system.out.println("none"); } else { (cookie cooky : cookies) { system.out.println("- " + cooky.tostring()); } } httpclient.getconnectionmanager().shutdown(); } catch (exception e) { system.out.println(e); } } }
you need set httpclient process cookies, example:
httpclient.getparams().setparameter(clientpnames.cookie_policy, cookiepolicy.browser_compatibility);
Comments
Post a Comment