Hi,
I just started to use HttpClient. I tested it on two webpages, I made it work
on a
simple webpage (to loggin into SquirrelMail). But I can't make it work on this
page :
http://www.edpnet.be/traffic2.aspx?R=1
I would like to know if there's something special to do about that webpage.
He is the code I used based upon a demo code (I removed my username and
password from
the code, but if you want to help you can contact me by email...) :
import org.apache.commons.httpclient.*;
import org.apache.commons.httpclient.cookie.CookiePolicy;
import org.apache.commons.httpclient.cookie.CookieSpec;
import org.apache.commons.httpclient.methods.*;
import org.apache.commons.httpclient.Cookie;
public class Quota {
static final String LOGON_SITE = "www.edpnet.be";
static final int LOGON_PORT = 80;
public Quota() {
super();
}
public static void main(String[] args) throws Exception {
HttpClient client = new HttpClient();
client.getHostConfiguration().setHost(LOGON_SITE,LOGON_PORT,"http");
client.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
GetMethod authget = new GetMethod("/traffic2.aspx?R=1");
client.executeMethod(authget);
System.out.println("Login form get: " +
authget.getStatusLine().toString());
// release any connection resources used by the method
authget.releaseConnection();
// See if we got any cookies
CookieSpec cookiespec = CookiePolicy.getDefaultSpec();
Cookie[] initcookies =
cookiespec.match(LOGON_SITE,LOGON_PORT,"/",false,client.getState().getCookies());
System.out.println("Initial set of cookies:");
if (initcookies.length == 0) {
System.out.println("None");
}
else {
for (int i = 0; i < initcookies.length; i++) {
System.out.println("- " + initcookies[i].toString());
}
}
PostMethod authpost = new PostMethod("/traffic2.aspx?R=1");
// Prepare login parameters
NameValuePair userid = new NameValuePair("tbUserName","******");
NameValuePair password = new NameValuePair("tbPassword","******");
authpost.setRequestBody(new NameValuePair[] {userid, password});
client.executeMethod(authpost);
System.out.println("Login form post: " +
authpost.getStatusLine().toString());
// release any connection resources used by the method
authpost.releaseConnection();
// See if we got any cookies
// The only way of telling whether logon succeeded is
// by finding a session cookie
Cookie[] logoncookies =
cookiespec.match(LOGON_SITE,LOGON_PORT,"/",false,client.getState().getCookies());
System.out.println("Logon cookies:");
if (logoncookies.length == 0) {
System.out.println("None");
}
else {
for (int i = 0; i < logoncookies.length; i++) {
System.out.println("- " + logoncookies[i].toString());
}
}
int statuscode = authpost.getStatusCode();
if ((statuscode == HttpStatus.SC_MOVED_TEMPORARILY) ||
(statuscode == HttpStatus.SC_MOVED_PERMANENTLY) ||
(statuscode == HttpStatus.SC_SEE_OTHER) ||
(statuscode == HttpStatus.SC_TEMPORARY_REDIRECT)) {
Header header = authpost.getResponseHeader("location");
if (header != null) {
String newuri = header.getValue();
if ((newuri == null) || (newuri.equals(""))) {
newuri = "/";
}
System.out.println("Redirect target: " + newuri);
GetMethod redirect = new GetMethod(newuri);
client.executeMethod(redirect);
System.out.println("Redirect: " +
redirect.getStatusLine().toString());
// release any connection resources used by the method
redirect.releaseConnection();
} else {
System.out.println("Invalid redirect");
System.exit(1);
}
}
GetMethod getmail = new GetMethod("/traffic2_details.aspx");
client.executeMethod(getmail);
System.out.println(getmail.getResponseBodyAsString());
}
}
Thanks for your help !
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]