You are viewing a plain text version of this content. The canonical link for it is here.
Posted to httpclient-users@hc.apache.org by Dennis Ryu <xd...@gmail.com> on 2009/12/08 23:42:02 UTC
How To Retrieve xml dump content after form login is done
Hi,
I am trying to retrieve xml dump content from a page. There is a login page
prior to reaching the page with the xml dump content. I have based my code
off of the form-logon example in order to get past the login page and then
redirected to the new page containing the dump. However I am not sure of
which method to call on which object in order to procure the data I needed.
Nor am I certain if I am getting redirected to the proper page. I have
included my code below and any help would be great! Thanks in advance!
DefaultHttpClient client = new DefaultHttpClient();
HttpGet httpGet = new HttpGet("my website (removed for security
purposes)");
HttpResponse response = client.execute(httpGet);
HttpEntity entity = response.getEntity();
System.out.println("Login form get: " + response.getStatusLine());
if (entity != null)
{
entity.consumeContent();
}
System.out.println("Initial set of cookies:");
List<Cookie> cookies = client.getCookieStore().getCookies();
if (cookies.isEmpty())
{
System.out.println("None");
}
else
{
for (int x = 0; x < cookies.size(); x++)
{
System.out.println("- " + cookies.get(x).toString());
}
}
HttpPost httpPost = new HttpPost("my website (removed for security
purposes)");
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("IDToken1", "user id (removed for security
purposes)"));
nvps.add(new BasicNameValuePair("IDToken2", "password (removed for
security purposes)"));
httpPost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
response = client.execute(httpPost);
entity = response.getEntity();
System.out.println("Login form get: " + response.getStatusLine());
if (entity != null)
{
entity.consumeContent();
}
System.out.println("Post logon cookies:");
cookies = client.getCookieStore().getCookies();
if (cookies.isEmpty())
{
System.out.println("None");
}
else
{
for (int x = 0; x < cookies.size(); x++)
{
System.out.println("- " + cookies.get(x).toString());
}
}
When running this script I get the following:
Login form get: HTTP/1.1 200 OK
Initial set of cookies:
- [version: 0][name: PHPSESSID][value:
3295561e35cdf71b587b545f8148136a][domain: testbed.toomuchmedia.com][path:
/][expiry: null]
Login form get: HTTP/1.1 302 Found
Post logon cookies:
- [version: 0][name: PHPSESSID][value:
3295561e35cdf71b587b545f8148136a][domain: testbed.toomuchmedia.com][path:
/][expiry: null]
>From a bit of research I know that "302 Found" means that I have been
redirected so I am assuming that I have gone through to the right page with
the correct data. I am just unsure of how to extract the dump which I would
normally view by viewing the source code while on that page. Thanks again!
-Dennis
--
View this message in context: http://old.nabble.com/How-To-Retrieve-xml-dump-content-after-form-login-is-done-tp26702150p26702150.html
Sent from the HttpClient-User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
For additional commands, e-mail: httpclient-users-help@hc.apache.org
Re: How To Retrieve xml dump content after form login is done
Posted by Oleg Kalnichevski <ol...@apache.org>.
Dennis Ryu wrote:
> Hey olegk,
>
> I am not quite sure on how to retrieve the wire log and display it. However
> I have found the answer to my prior post but now I have a new problem. I
> have found how to retrieve the source code by using a ResponseHandler.
> However the source code i get from this ResponseHandler returns to me the
> code of the login page. Either I am not getting redirected properly or I am
> taking the response from before I log in. Any thoughts on this matter would
> be much appreciated!
>
Take a look at the logging guide:
http://hc.apache.org/httpcomponents-client/logging.html
Also make sure you have read this:
http://hc.apache.org/httpcomponents-client/primer.html
Oleg
---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
For additional commands, e-mail: httpclient-users-help@hc.apache.org
Re: How To Retrieve xml dump content after form login is done
Posted by Dennis Ryu <xd...@gmail.com>.
Hey olegk,
I am not quite sure on how to retrieve the wire log and display it. However
I have found the answer to my prior post but now I have a new problem. I
have found how to retrieve the source code by using a ResponseHandler.
However the source code i get from this ResponseHandler returns to me the
code of the login page. Either I am not getting redirected properly or I am
taking the response from before I log in. Any thoughts on this matter would
be much appreciated!
The code for my ResponseHandler:
ResponseHandler<String> handler = new BasicResponseHandler();
String r = client.execute(httpGet, handler);
System.out.println(r);
-Dennis
olegk wrote:
>
> Dennis Ryu wrote:
>> Hi,
>>
>> I am trying to retrieve xml dump content from a page. There is a login
>> page
>> prior to reaching the page with the xml dump content. I have based my
>> code
>> off of the form-logon example in order to get past the login page and
>> then
>> redirected to the new page containing the dump. However I am not sure of
>> which method to call on which object in order to procure the data I
>> needed.
>> Nor am I certain if I am getting redirected to the proper page. I have
>> included my code below and any help would be great! Thanks in advance!
>>
>> DefaultHttpClient client = new DefaultHttpClient();
>> HttpGet httpGet = new HttpGet("my website (removed for security
>> purposes)");
>> HttpResponse response = client.execute(httpGet);
>> HttpEntity entity = response.getEntity();
>> System.out.println("Login form get: " + response.getStatusLine());
>> if (entity != null)
>> {
>> entity.consumeContent();
>> }
>> System.out.println("Initial set of cookies:");
>> List<Cookie> cookies = client.getCookieStore().getCookies();
>> if (cookies.isEmpty())
>> {
>> System.out.println("None");
>> }
>> else
>> {
>> for (int x = 0; x < cookies.size(); x++)
>> {
>> System.out.println("- " + cookies.get(x).toString());
>> }
>> }
>>
>> HttpPost httpPost = new HttpPost("my website (removed for security
>> purposes)");
>> List<NameValuePair> nvps = new ArrayList<NameValuePair>();
>> nvps.add(new BasicNameValuePair("IDToken1", "user id (removed for
>> security
>> purposes)"));
>> nvps.add(new BasicNameValuePair("IDToken2", "password (removed for
>> security purposes)"));
>> httpPost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
>>
>> response = client.execute(httpPost);
>> entity = response.getEntity();
>>
>> System.out.println("Login form get: " + response.getStatusLine());
>>
>> if (entity != null)
>> {
>> entity.consumeContent();
>> }
>> System.out.println("Post logon cookies:");
>> cookies = client.getCookieStore().getCookies();
>> if (cookies.isEmpty())
>> {
>> System.out.println("None");
>> }
>> else
>> {
>> for (int x = 0; x < cookies.size(); x++)
>> {
>> System.out.println("- " + cookies.get(x).toString());
>> }
>> }
>>
>> When running this script I get the following:
>>
>> Login form get: HTTP/1.1 200 OK
>> Initial set of cookies:
>> - [version: 0][name: PHPSESSID][value:
>> 3295561e35cdf71b587b545f8148136a][domain: testbed.toomuchmedia.com][path:
>> /][expiry: null]
>> Login form get: HTTP/1.1 302 Found
>> Post logon cookies:
>> - [version: 0][name: PHPSESSID][value:
>> 3295561e35cdf71b587b545f8148136a][domain: testbed.toomuchmedia.com][path:
>> /][expiry: null]
>>
>> From a bit of research I know that "302 Found" means that I have been
>> redirected so I am assuming that I have gone through to the right page
>> with
>> the correct data. I am just unsure of how to extract the dump which I
>> would
>> normally view by viewing the source code while on that page. Thanks
>> again!
>>
>> -Dennis
>
> Dennis,
>
> I find it strange that HttpClient did not handle that redirect
> automatically. Can you post a wire log of the session?
>
> http://hc.apache.org/httpcomponents-client/logging.html
>
> Oleg
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
> For additional commands, e-mail: httpclient-users-help@hc.apache.org
>
>
>
--
View this message in context: http://old.nabble.com/How-To-Retrieve-xml-dump-content-after-form-login-is-done-tp26702150p26748902.html
Sent from the HttpClient-User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
For additional commands, e-mail: httpclient-users-help@hc.apache.org
Re: How To Retrieve xml dump content after form login is done
Posted by Oleg Kalnichevski <ol...@apache.org>.
Dennis Ryu wrote:
> Hi,
>
> I am trying to retrieve xml dump content from a page. There is a login page
> prior to reaching the page with the xml dump content. I have based my code
> off of the form-logon example in order to get past the login page and then
> redirected to the new page containing the dump. However I am not sure of
> which method to call on which object in order to procure the data I needed.
> Nor am I certain if I am getting redirected to the proper page. I have
> included my code below and any help would be great! Thanks in advance!
>
> DefaultHttpClient client = new DefaultHttpClient();
> HttpGet httpGet = new HttpGet("my website (removed for security
> purposes)");
> HttpResponse response = client.execute(httpGet);
> HttpEntity entity = response.getEntity();
> System.out.println("Login form get: " + response.getStatusLine());
> if (entity != null)
> {
> entity.consumeContent();
> }
> System.out.println("Initial set of cookies:");
> List<Cookie> cookies = client.getCookieStore().getCookies();
> if (cookies.isEmpty())
> {
> System.out.println("None");
> }
> else
> {
> for (int x = 0; x < cookies.size(); x++)
> {
> System.out.println("- " + cookies.get(x).toString());
> }
> }
>
> HttpPost httpPost = new HttpPost("my website (removed for security
> purposes)");
> List<NameValuePair> nvps = new ArrayList<NameValuePair>();
> nvps.add(new BasicNameValuePair("IDToken1", "user id (removed for security
> purposes)"));
> nvps.add(new BasicNameValuePair("IDToken2", "password (removed for
> security purposes)"));
> httpPost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
>
> response = client.execute(httpPost);
> entity = response.getEntity();
>
> System.out.println("Login form get: " + response.getStatusLine());
>
> if (entity != null)
> {
> entity.consumeContent();
> }
> System.out.println("Post logon cookies:");
> cookies = client.getCookieStore().getCookies();
> if (cookies.isEmpty())
> {
> System.out.println("None");
> }
> else
> {
> for (int x = 0; x < cookies.size(); x++)
> {
> System.out.println("- " + cookies.get(x).toString());
> }
> }
>
> When running this script I get the following:
>
> Login form get: HTTP/1.1 200 OK
> Initial set of cookies:
> - [version: 0][name: PHPSESSID][value:
> 3295561e35cdf71b587b545f8148136a][domain: testbed.toomuchmedia.com][path:
> /][expiry: null]
> Login form get: HTTP/1.1 302 Found
> Post logon cookies:
> - [version: 0][name: PHPSESSID][value:
> 3295561e35cdf71b587b545f8148136a][domain: testbed.toomuchmedia.com][path:
> /][expiry: null]
>
> From a bit of research I know that "302 Found" means that I have been
> redirected so I am assuming that I have gone through to the right page with
> the correct data. I am just unsure of how to extract the dump which I would
> normally view by viewing the source code while on that page. Thanks again!
>
> -Dennis
Dennis,
I find it strange that HttpClient did not handle that redirect
automatically. Can you post a wire log of the session?
http://hc.apache.org/httpcomponents-client/logging.html
Oleg
---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
For additional commands, e-mail: httpclient-users-help@hc.apache.org