Since I am reusing my context between calls, im trying to have the same
cookie store in the context like this:
context = new BasicHttpContext();
response = httpClient.execute(httpost, context);
CookieStore cookieStore = (CookieStore) httpClient.getCookieStore();
context.setAttribute(ClientContext.COOKIE_STORE, cookieStore);
But when I make another get request , the cookie changes. Log from call
---> First post with form:
[java] 2010-feb-19 17:15:33
org.apache.http.client.protocol.RequestAddCookies process
[java] FIN: CookieSpec selected: best-match
[java] 2010-feb-19 17:15:33
org.apache.http.client.protocol.RequestAddCookies process
[java] FIN: Cookie [version: 0][name: PHPSESSID][value: *
ud60eqh6ihuje5veg03ct7ri44]*[domain: schema.sthlm.friskissvettis.se][path:
/][expiry: null] match [schema.sthlm.friskissvettis.se:80/index.php]
[java] 2010-feb-19 17:15:33
org.apache.http.impl.client.DefaultRequestDirector execute
[java] FIN: Attempt 1 to execute request
--> new get request (redirect)
[java] 2010-feb-19 17:15:34
org.apache.http.client.protocol.ResponseProcessCookies processCookies
[java] FIN: Cookie accepted: "[version: 0][name: PHPSESSID][value: *
fltgeoj2joikbdlv4fe3un22t5*][domain: schema.sthlm.friskissvettis.se][path:
/][expiry: null]".
Why is the cookie not the same?
Thx
A
On 19 February 2010 17:49, Andreas Blomqvist <[email protected]>wrote:
> Do I need to handle the Cookies manually? From the logs it looks like I'm
> getting lots of different cookies. How do i set the cookie in the context ?
>
> Thx
> A
>
>
> On 19 February 2010 13:59, Andreas Blomqvist
> <[email protected]>wrote:
>
>> "HttpClient handles all types of redirects automatically, except those
>> explicitly prohibited by the HTTP specification as requiring user
>> intervention" but isnt 302 such a code that doesnt allow redirect? Thats why
>> I try to manually redirect in my code. But it doesnt seem to work.
>>
>> Thx
>> A
>>
>>
>> On 19 February 2010 12:05, Oleg Kalnichevski <[email protected]> wrote:
>>
>>> Andreas Blomqvist wrote:
>>>
>>>> I guess you mean this line:
>>>>
>>>> [java] 2010-feb-19 10:46:34
>>>> org.apache.commons.httpclient.HttpMethodDirector isRedirectNeeded
>>>>
>>>> I cant find that package anywhere in my libs. Very strange. But if we
>>>> assume
>>>> that it is 4.0 thats running (code wise) how do I set the redirect ?
>>>>
>>>> /A
>>>>
>>>>
>>>
>>> http://hc.apache.org/httpcomponents-client/tutorial/html/httpagent.html#d4e1199
>>>
>>>
>>> Oleg
>>>
>>>
>>>> On 19 February 2010 11:16, Oleg Kalnichevski <[email protected]> wrote:
>>>>
>>>> Andreas Blomqvist wrote:
>>>>>
>>>>> Hi
>>>>>>
>>>>>> I'm confused. Im using httpclient, httpcore and httpmime 4.0.1 jars.
>>>>>> Is
>>>>>> that
>>>>>> not version 4 of HttpClient ?
>>>>>>
>>>>>> My code is trying to login in on a webpage by posting a form. But i'm
>>>>>> not
>>>>>> getting logged in until i make a second call with this code.
>>>>>>
>>>>>> What doesnt look right? the code or the logs (or both :) )
>>>>>>
>>>>>> Thx
>>>>>>
>>>>>> A
>>>>>>
>>>>>>
>>>>>> I am confused too, because I clearly see a log entry generated by
>>>>> HttpClient 3.
>>>>>
>>>>> Oleg
>>>>>
>>>>>
>>>>>
>>>>> On 19 February 2010 10:54, Oleg Kalnichevski <[email protected]>
>>>>> wrote:
>>>>>
>>>>>> Andreas Blomqvist wrote:
>>>>>>
>>>>>>> Thats for httpClient 3 ?
>>>>>>>
>>>>>>>> /A
>>>>>>>>
>>>>>>>> On 19 February 2010 08:56, Avlesh Singh <[email protected]> wrote:
>>>>>>>>
>>>>>>>> It says redirect is disabled? How do enable it? I thought redirect
>>>>>>>> was
>>>>>>>> on
>>>>>>>>
>>>>>>>> by default, but did not work for POST
>>>>>>>>>
>>>>>>>>>> Looking for - HttpMethod#followRedirects() ?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> http://hc.apache.org/httpclient-3.x/apidocs/org/apache/commons/httpclient/HttpMethod.html#setFollowRedirects%28boolean%29
>>>>>>>>>
>>>>>>>>> Cheers
>>>>>>>>> Avlesh
>>>>>>>>>
>>>>>>>>> On Fri, Feb 19, 2010 at 1:23 PM, Andreas Blomqvist <
>>>>>>>>> [email protected]> wrote:
>>>>>>>>>
>>>>>>>>> Hi
>>>>>>>>>
>>>>>>>>> Here some loggs from when I tried to logon:
>>>>>>>>>>
>>>>>>>>>> [java] The server is running at http://localhost:8282/
>>>>>>>>>> [java] Got request method login
>>>>>>>>>> [java] 2010-feb-19 07:48:45
>>>>>>>>>> org.apache.http.client.protocol.RequestAddCookies process
>>>>>>>>>> [java] FIN: CookieSpec selected: best-match
>>>>>>>>>> [java] 2010-feb-19 07:48:45
>>>>>>>>>> org.apache.http.impl.client.DefaultRequestDirector execute
>>>>>>>>>> [java] FIN: Attempt 1 to execute request
>>>>>>>>>> [java] 2010-feb-19 07:48:46
>>>>>>>>>> org.apache.commons.httpclient.HttpMethodDirector isRedirectNeeded
>>>>>>>>>> [java] INFO: Redirect requested but followRedirects is disabled
>>>>>>>>>>
>>>>>>>>>> This log comes from HttpClient 3 (org.apache.commons.httpclient
>>>>>>>>>> name
>>>>>>>>>>
>>>>>>>>> space), whereas all others come from HttpClient 4
>>>>>>> (org.apache.http.client
>>>>>>> name space).
>>>>>>>
>>>>>>> I have no idea what your application is supposed to do, but this
>>>>>>> certainly
>>>>>>> does not look right to me.
>>>>>>>
>>>>>>> Oleg
>>>>>>>
>>>>>>>
>>>>>>> [java] 2010-feb-19 07:48:46
>>>>>>>
>>>>>>> org.apache.http.client.protocol.ResponseProcessCookies
>>>>>>>> processCookies
>>>>>>>>
>>>>>>>>> [java] FIN: Cookie accepted: "[version: 0][name: PHPSESSID][value:
>>>>>>>>>> 9l8gtdf85tn4gitqjs0hg2f551][domain:
>>>>>>>>>> schema.sthlm.friskissvettis.se
>>>>>>>>>>
>>>>>>>>>> ][path:
>>>>>>>>>>
>>>>>>>>> /][expiry: null]".
>>>>>>>>>
>>>>>>>>>> [java] http://url_to_server/index.php?func=do_login
>>>>>>>>>> [java] 2010-feb-19 07:48:46
>>>>>>>>>> org.apache.http.client.protocol.RequestAddCookies process
>>>>>>>>>> [java] FIN: CookieSpec selected: best-match
>>>>>>>>>> [java] 2010-feb-19 07:48:46
>>>>>>>>>> org.apache.http.client.protocol.RequestAddCookies process
>>>>>>>>>> [java] FIN: Cookie [version: 0][name: PHPSESSID][value:
>>>>>>>>>> 9l8gtdf85tn4gitqjs0hg2f551][domain:
>>>>>>>>>> schema.sthlm.friskissvettis.se
>>>>>>>>>>
>>>>>>>>>> ][path:
>>>>>>>>>>
>>>>>>>>> /][expiry: null] match [
>>>>>>>>> schema.sthlm.friskissvettis.se:80/index.php]
>>>>>>>>>
>>>>>>>>>> [java] 2010-feb-19 07:48:46
>>>>>>>>>> org.apache.http.impl.client.DefaultRequestDirector execute
>>>>>>>>>> [java] FIN: Attempt 1 to execute request
>>>>>>>>>> [java] 2010-feb-19 07:48:47
>>>>>>>>>> org.apache.http.client.protocol.ResponseProcessCookies
>>>>>>>>>> processCookies
>>>>>>>>>> [java] FIN: Cookie accepted: "[version: 0][name:
>>>>>>>>>> PHPSESSID][value:
>>>>>>>>>> 9tteoedfpeugqb81d2750dk3q5][domain:
>>>>>>>>>> schema.sthlm.friskissvettis.se
>>>>>>>>>>
>>>>>>>>>> ][path:
>>>>>>>>>>
>>>>>>>>> /][expiry: null]".
>>>>>>>>>
>>>>>>>>>> [java] 2010-feb-19 07:48:47
>>>>>>>>>> org.apache.http.client.protocol.RequestAddCookies process
>>>>>>>>>> [java] FIN: CookieSpec selected: best-match
>>>>>>>>>> [java] 2010-feb-19 07:48:47
>>>>>>>>>> org.apache.http.client.protocol.RequestAddCookies process
>>>>>>>>>> [java] FIN: Cookie [version: 0][name: PHPSESSID][value:
>>>>>>>>>> 9tteoedfpeugqb81d2750dk3q5][domain:
>>>>>>>>>> schema.sthlm.friskissvettis.se
>>>>>>>>>>
>>>>>>>>>> ][path:
>>>>>>>>>>
>>>>>>>>> /][expiry: null] match [
>>>>>>>>> schema.sthlm.friskissvettis.se:80/index.php]
>>>>>>>>>
>>>>>>>>>> [java] context: org.apache.http.protocol.basichttpcont...@148e798
>>>>>>>>>> [java] 2010-feb-19 07:48:47
>>>>>>>>>> org.apache.http.impl.client.DefaultRequestDirector execute
>>>>>>>>>> [java] FIN: Attempt 1 to execute request
>>>>>>>>>> [java] 2010-feb-19 07:48:47
>>>>>>>>>> org.apache.http.client.protocol.ResponseProcessCookies
>>>>>>>>>> processCookies
>>>>>>>>>> [java] FIN: Cookie accepted: "[version: 0][name:
>>>>>>>>>> PHPSESSID][value:
>>>>>>>>>> 7ugatbbqeku112d8atm9b9qr34][domain:
>>>>>>>>>> schema.sthlm.friskissvettis.se
>>>>>>>>>>
>>>>>>>>>> ][path:
>>>>>>>>>>
>>>>>>>>> /][expiry: null]".
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> It says redirect is disabled? How do enable it? I thought redirect
>>>>>>>>>> was
>>>>>>>>>> on
>>>>>>>>>> by
>>>>>>>>>> default, but did not work for POST
>>>>>>>>>>
>>>>>>>>>> /A
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On 18 February 2010 21:17, Oleg Kalnichevski <[email protected]>
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>> Andreas Blomqvist wrote:
>>>>>>>>>>
>>>>>>>>>> Hi
>>>>>>>>>>>
>>>>>>>>>>> Doing a POST login to a site (which I dont control) and manually
>>>>>>>>>>>> redirecting. However I am not getting logged in until I make a
>>>>>>>>>>>> second
>>>>>>>>>>>>
>>>>>>>>>>>> call
>>>>>>>>>>>>
>>>>>>>>>>> to the login method. Why?
>>>>>>>>>>>
>>>>>>>>>>> My code for login :
>>>>>>>>>>>>
>>>>>>>>>>>> private HttpContext login(DefaultHttpClient httpClient, String
>>>>>>>>>>>>
>>>>>>>>>>>> button,
>>>>>>>>>>>>
>>>>>>>>>>> String user, String pass) throws UnsupportedEncodingException,
>>>>>>>>>>
>>>>>>>>>> IOException
>>>>>>>>>>> {
>>>>>>>>>>>
>>>>>>>>>>> HttpResponse response = null;
>>>>>>>>>>>> HttpEntity entity = null;
>>>>>>>>>>>> HttpPost httpost = new HttpPost(BASE_URL +
>>>>>>>>>>>> "/index.php?func=do_login");
>>>>>>>>>>>>
>>>>>>>>>>>> List<NameValuePair> nvps = new ArrayList<NameValuePair>();
>>>>>>>>>>>> nvps.add(new BasicNameValuePair("btn_login", button));
>>>>>>>>>>>> nvps.add(new BasicNameValuePair("txt_login", user));
>>>>>>>>>>>> nvps.add(new BasicNameValuePair("psw_password", pass));
>>>>>>>>>>>>
>>>>>>>>>>>> httpost.setEntity(new UrlEncodedFormEntity(nvps,
>>>>>>>>>>>> HTTP.UTF_8));
>>>>>>>>>>>>
>>>>>>>>>>>> HttpContext context = new BasicHttpContext();
>>>>>>>>>>>> response = httpClient.execute(httpost, context);
>>>>>>>>>>>>
>>>>>>>>>>>> System.out.println("Post status is " +
>>>>>>>>>>>>
>>>>>>>>>>>> response.getStatusLine());
>>>>>>>>>>>> entity = response.getEntity();
>>>>>>>>>>>> if (entity != null) {
>>>>>>>>>>>> entity.consumeContent();
>>>>>>>>>>>> }
>>>>>>>>>>>>
>>>>>>>>>>>> HttpUriRequest request = (HttpUriRequest)
>>>>>>>>>>>> context.getAttribute(
>>>>>>>>>>>> ExecutionContext.HTTP_REQUEST);
>>>>>>>>>>>>
>>>>>>>>>>>> String uri = BASE_URL + request.getURI().toString();
>>>>>>>>>>>>
>>>>>>>>>>>> System.out.println("uri in login " + uri);
>>>>>>>>>>>>
>>>>>>>>>>>> HttpGet redirect = new HttpGet(uri);
>>>>>>>>>>>> response = httpClient.execute(redirect, context);
>>>>>>>>>>>>
>>>>>>>>>>>> System.out.println("Redirect HttpGet status is " +
>>>>>>>>>>>> response.getStatusLine());
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> entity = response.getEntity();
>>>>>>>>>>>> if (entity != null) {
>>>>>>>>>>>> entity.consumeContent();
>>>>>>>>>>>> }
>>>>>>>>>>>>
>>>>>>>>>>>> return context;
>>>>>>>>>>>> }
>>>>>>>>>>>>
>>>>>>>>>>>> After a call to this method I get output: (checking login status
>>>>>>>>>>>> is
>>>>>>>>>>>>
>>>>>>>>>>>> method
>>>>>>>>>>>>
>>>>>>>>>>> I
>>>>>>>>>>>
>>>>>>>>>>> made to check for att logout link on the page.
>>>>>>>>>>>>
>>>>>>>>>>>> [java] Post status is HTTP/1.1 302
>>>>>>>>>>>> [java] uri in login url_to_first_page
>>>>>>>>>>>> [java] Redirect HttpGet status is HTTP/1.1 200
>>>>>>>>>>>> [java] Checking login statuts: false
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Any thoughts?
>>>>>>>>>>>>
>>>>>>>>>>>> /A
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Post wire log
>>>>>>>>>>>>
>>>>>>>>>>>> http://hc.apache.org/httpcomponents-client/logging.html
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> ---------------------------------------------------------------------
>>>>>>>>>>> To unsubscribe, e-mail:
>>>>>>>>>>> [email protected]
>>>>>>>>>>> For additional commands, e-mail:
>>>>>>>>>>> [email protected]
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> ---------------------------------------------------------------------
>>>>>>>>>>>
>>>>>>>>>> To unsubscribe, e-mail:
>>>>>>> [email protected]
>>>>>>> For additional commands, e-mail: [email protected]
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: [email protected]
>>>>> For additional commands, e-mail: [email protected]
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [email protected]
>>> For additional commands, e-mail: [email protected]
>>>
>>>
>>
>