Hello,
I wrote an application that tries to log in to a https-domain by
transmitting login and password by http-POST. As response I receive two
cookies and a redirection code 302. Trying to handle this redirection, the
program crashes.
Perhaps anybody might help? Thanks a lot in advance.
Pascal
---------------------------------------------------------------------
import org.apache.commons.httpclient.*;
import org.apache.commons.httpclient.methods.*;
import org.apache.commons.httpclient.cookie.*;
import java.io.*;
public class myClient {
private static String url =
"https://www.openbc.com/cgi-bin/user.fpl?op=home";
public static void main(String[] args)
{
System.setProperty("org.apache.commons.logging.Log","org.apache.commons.logging.impl.SimpleLog");
System.setProperty("org.apache.commons.logging.simplelog.showdatetime","true");
System.setProperty("org.apache.commons.logging.simplelog.log.httpclient.wire","debug");
System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.commons.httpclient","debug");
HttpClient client = new HttpClient();
PostMethod post = new PostMethod(url);
NameValuePair[] data = { new NameValuePair("op", "login"),
new NameValuePair("dest",
"/cgi-bin/user.fpl?op=home"),
new NameValuePair("login_user_name", "***"),
new NameValuePair("login_password", "***")
};
post.setRequestBody(data);
post.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
client.getParams().setParameter("http.protocol.single-cookie-header","true");
// post.setFollowRedirects(true);
try {
int statuscode = client.executeMethod(post);
Header locationHeader =
post.getResponseHeader("location");
Reader r = new InputStreamReader(new
BufferedInputStream(post
.getResponseBodyAsStream()));
int c;
while ((c = r.read()) != -1)
System.out.print((char) c);
Cookie[] cookies = client.getState().getCookies();
// Display the cookies
System.out.println("Present cookies: ");
for (int i = 0; i < cookies.length; i++)
System.out.println(" - " +
cookies[i].toExternalForm());
post.releaseConnection();
// redirection
*********************************************
if ((statuscode == HttpStatus.SC_MOVED_TEMPORARILY)
|| (statuscode ==
HttpStatus.SC_MOVED_PERMANENTLY)
|| (statuscode ==
HttpStatus.SC_SEE_OTHER)
|| (statuscode ==
HttpStatus.SC_TEMPORARY_REDIRECT)) {
if (locationHeader != null) {
String newuri =
locationHeader.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);
}
}
//
*********************************************************
} catch (HttpException e) {
System.err.println("Fatal protocol violation: " +
e.getMessage());
e.printStackTrace();
} catch (IOException e) {
System.err.println("Fatal transport error: " +
e.getMessage());
e.printStackTrace();
}
}
}
----------------------------------------------------------------------
----------------------------------------------------------------------
2005/11/04 20:08:28:817 CET [DEBUG] HttpClient - Java version: 1.4.2_06
2005/11/04 20:08:28:823 CET [DEBUG] HttpClient - Java vendor: Sun
Microsystems Inc.
2005/11/04 20:08:28:829 CET [DEBUG] HttpClient - Operating system name:
Linux
2005/11/04 20:08:28:831 CET [DEBUG] HttpClient - Operating system
architecture: i386
2005/11/04 20:08:28:834 CET [DEBUG] HttpClient - Operating system version:
2.6.11.4-21.2-default
2005/11/04 20:08:29:375 CET [DEBUG] HttpClient - SUN 1.42: SUN (DSA
key/parameter generation; DSA signing; SHA-1, MD5 digests; SecureRandom;
X.509 certificates; JKS keystore; PKIX CertPathValidator; PKIX
CertPathBuilder; LDAP, Collection CertStores)
2005/11/04 20:08:29:378 CET [DEBUG] HttpClient - SunJSSE 1.42: Sun JSSE
provider(implements RSA Signatures, PKCS12, SunX509 key/trust factories,
SSLv3, TLSv1)
2005/11/04 20:08:29:380 CET [DEBUG] HttpClient - SunRsaSign 1.42: SUN's
provider for RSA signatures
2005/11/04 20:08:29:381 CET [DEBUG] HttpClient - SunJCE 1.42: SunJCE
Provider (implements DES, Triple DES, AES, Blowfish, PBE, Diffie-Hellman,
HMAC-MD5, HMAC-SHA1)
2005/11/04 20:08:29:381 CET [DEBUG] HttpClient - SunJGSS 1.0: Sun (Kerberos
v5)
2005/11/04 20:08:29:418 CET [DEBUG] DefaultHttpParams - Set parameter
http.useragent = Jakarta Commons-HttpClient/3.0-rc4
2005/11/04 20:08:29:428 CET [DEBUG] DefaultHttpParams - Set parameter
http.protocol.version = HTTP/1.1
2005/11/04 20:08:29:445 CET [DEBUG] DefaultHttpParams - Set parameter
http.connection-manager.class = class
org.apache.commons.httpclient.SimpleHttpConnectionManager
2005/11/04 20:08:29:446 CET [DEBUG] DefaultHttpParams - Set parameter
http.protocol.cookie-policy = rfc2109
2005/11/04 20:08:29:446 CET [DEBUG] DefaultHttpParams - Set parameter
http.protocol.element-charset = US-ASCII
2005/11/04 20:08:29:447 CET [DEBUG] DefaultHttpParams - Set parameter
http.protocol.content-charset = ISO-8859-1
2005/11/04 20:08:29:454 CET [DEBUG] DefaultHttpParams - Set parameter
http.method.retry-handler =
[EMAIL PROTECTED]
2005/11/04 20:08:29:456 CET [DEBUG] DefaultHttpParams - Set parameter
http.dateparser.patterns = [EEE, dd MMM yyyy HH:mm:ss zzz, EEEE, dd-MMM-yy
HH:mm:ss zzz, EEE MMM d HH:mm:ss yyyy, EEE, dd-MMM-yyyy HH:mm:ss z, EEE,
dd-MMM-yyyy HH-mm-ss z, EEE, dd MMM yy HH:mm:ss z, EEE dd-MMM-yyyy HH:mm:ss
z, EEE dd MMM yyyy HH:mm:ss z, EEE dd-MMM-yyyy HH-mm-ss z, EEE dd-MMM-yy
HH:mm:ss z, EEE dd MMM yy HH:mm:ss z, EEE,dd-MMM-yy HH:mm:ss z,
EEE,dd-MMM-yyyy HH:mm:ss z, EEE, dd-MM-yyyy HH:mm:ss z]
2005/11/04 20:08:29:819 CET [DEBUG] DefaultHttpParams - Set parameter
http.protocol.cookie-policy = compatibility
2005/11/04 20:08:29:819 CET [DEBUG] DefaultHttpParams - Set parameter
http.protocol.single-cookie-header = true
2005/11/04 20:08:29:907 CET [DEBUG] HttpConnection - Open connection to
www.openbc.com:443
2005/11/04 20:08:30:822 CET [DEBUG] header - >> "POST
/cgi-bin/user.fpl?op=home HTTP/1.1[\r][\n]"
2005/11/04 20:08:30:824 CET [DEBUG] HttpMethodBase - Adding Host request
header
2005/11/04 20:08:30:867 CET [DEBUG] HttpMethodBase - Default charset used:
ISO-8859-1
2005/11/04 20:08:30:885 CET [DEBUG] HttpMethodBase - Default charset used:
ISO-8859-1
2005/11/04 20:08:30:896 CET [DEBUG] header - >> "User-Agent: Jakarta
Commons-HttpClient/3.0-rc4[\r][\n]"
2005/11/04 20:08:30:897 CET [DEBUG] header - >> "Host:
www.openbc.com[\r][\n]"
2005/11/04 20:08:30:898 CET [DEBUG] header - >> "Content-Length: 96[\r][\n]"
2005/11/04 20:08:30:899 CET [DEBUG] header - >> "Content-Type:
application/x-www-form-urlencoded[\r][\n]"
2005/11/04 20:08:30:900 CET [DEBUG] header - >> "[\r][\n]"
2005/11/04 20:08:30:901 CET [DEBUG] content - >>
"op=login&dest=%2Fcgi-bin%2Fuser.fpl%3Fop%3Dhome&login_user_name=***&login_password=***"
2005/11/04 20:08:31:668 CET [DEBUG] EntityEnclosingMethod - Request body
sent
2005/11/04 20:08:32:165 CET [DEBUG] header - << "HTTP/1.1 302 Found[\r][\n]"
2005/11/04 20:08:32:182 CET [DEBUG] header - << "Date: Fri, 04 Nov 2005
19:07:47 GMT[\r][\n]"
2005/11/04 20:08:32:183 CET [DEBUG] header - << "Server: Apache[\r][\n]"
2005/11/04 20:08:32:183 CET [DEBUG] header - << "Set-Cookie: obc=;
expires=Thu Jan 1 01:00:00 1970; path=/; domain=.www.openbc.com[\r][\n]"
2005/11/04 20:08:32:195 CET [DEBUG] header - << "Set-Cookie:
obc_ssl=|UmFuZG9tSVZYaE9zNuvSFG6bZ8leX6RELVb4J3m3YE6rr+NOmguByop8Y1Ip+qTh2PjpRO8QLt8=|;
expires=Sat Nov 4 20:07:47 2006; path=/[\r][\n]"
2005/11/04 20:08:32:197 CET [DEBUG] header - << "Set-Cookie:
obc=|UmFuZG9tSVZYWvMi1Z/OXhtDWVqPapkrnwvDZcObDAkexpQuIlDjfjdji0du3jk7WZDuG32KJfM4XXAqV+gSQ27/i3R0zoWp5JC1zMeADEQ+7QyufISqDu9M8mz4pZTbmr1h4mjXT8w=|;
secure; path=/[\r][\n]"
2005/11/04 20:08:32:199 CET [DEBUG] header - << "Cache-control:
private[\r][\n]"
2005/11/04 20:08:32:199 CET [DEBUG] header - << "Expires: Now[\r][\n]"
2005/11/04 20:08:32:200 CET [DEBUG] header - << "Pragma: no-cache[\r][\n]"
2005/11/04 20:08:32:200 CET [DEBUG] header - << "Connection: close[\r][\n]"
2005/11/04 20:08:32:200 CET [DEBUG] header - << "Location:
https://www.openbc.com/cgi-bin/user.fpl?op=home[\r][\n]"
2005/11/04 20:08:32:200 CET [DEBUG] header - << "Transfer-Encoding:
chunked[\r][\n]"
2005/11/04 20:08:32:201 CET [DEBUG] header - << "Content-Type: text/html;
charset=iso-8859-1[\r][\n]"
2005/11/04 20:08:32:351 CET [DEBUG] HttpMethodBase - Cookie accepted: "obc="
2005/11/04 20:08:32:353 CET [DEBUG] HttpMethodBase - Cookie accepted:
"obc_ssl=|UmFuZG9tSVZYaE9zNuvSFG6bZ8leX6RELVb4J3m3YE6rr+NOmguByop8Y1Ip+qTh2PjpRO8QLt8=|"
2005/11/04 20:08:32:357 CET [DEBUG] HttpMethodBase - Cookie accepted:
"obc=|UmFuZG9tSVZYWvMi1Z/OXhtDWVqPapkrnwvDZcObDAkexpQuIlDjfjdji0du3jk7WZDuG32KJfM4XXAqV+gSQ27/i3R0zoWp5JC1zMeADEQ+7QyufISqDu9M8mz4pZTbmr1h4mjXT8w=|"
2005/11/04 20:08:32:364 CET [DEBUG] HttpMethodDirector - Redirect required
2005/11/04 20:08:32:365 CET [INFO] HttpMethodDirector - Redirect requested
but followRedirects is disabled
2005/11/04 20:08:32:366 CET [DEBUG] content - << "e"
2005/11/04 20:08:32:367 CET [DEBUG] content - << "3"
2005/11/04 20:08:32:367 CET [DEBUG] content - << " "
2005/11/04 20:08:32:367 CET [DEBUG] content - << "[\r]"
2005/11/04 20:08:32:367 CET [DEBUG] content - << "[\n]"
2005/11/04 20:08:32:373 CET [DEBUG] content - << "<!DOCTYPE HTML PUBLIC
"-//IETF//DTD HTML 2.0//EN">[\n]"
2005/11/04 20:08:32:378 CET [DEBUG] content - << "<HTML><HEAD>[\n]"
2005/11/04 20:08:32:378 CET [DEBUG] content - << "<TITLE>302
Found</TITLE>[\n]"
2005/11/04 20:08:32:378 CET [DEBUG] content - << "</HEAD><BODY>[\n]"
2005/11/04 20:08:32:379 CET [DEBUG] content - << "<H1>Found</H1>[\n]"
2005/11/04 20:08:32:380 CET [DEBUG] content - << "The document has moved <A
HREF="https://www.openbc.com/cgi-bin/user.fpl?op=home">here</A>.<P>[\n]"
2005/11/04 20:08:32:380 CET [DEBUG] content - << "</BODY></HTML>[\n]"
2005/11/04 20:08:32:386 CET [DEBUG] content - << "[\r]"
2005/11/04 20:08:32:387 CET [DEBUG] content - << "[\n]"
2005/11/04 20:08:32:389 CET [DEBUG] content - << "0"
2005/11/04 20:08:32:389 CET [DEBUG] content - << "[\r]"
2005/11/04 20:08:32:389 CET [DEBUG] content - << "[\n]"
2005/11/04 20:08:32:390 CET [DEBUG] content - << "[\r]"
2005/11/04 20:08:32:390 CET [DEBUG] content - << "[\n]"
2005/11/04 20:08:32:390 CET [DEBUG] HttpMethodBase - Should close connection
in response to directive: close
2005/11/04 20:08:32:392 CET [DEBUG] HttpConnection - Releasing connection
back to connection manager.
2005/11/04 20:08:32:400 CET [DEBUG] HttpConnection - Open connection to
www.openbc.com:443
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>302 Found</TITLE>
</HEAD><BODY>
<H1>Found</H1>
The document has moved <A
HREF="https://www.openbc.com/cgi-bin/user.fpl?op=home">here</A>.<P>
</BODY></HTML>
Present cookies:
-
obc_ssl=|UmFuZG9tSVZYaE9zNuvSFG6bZ8leX6RELVb4J3m3YE6rr+NOmguByop8Y1Ip+qTh2PjpRO8QLt8=|
-
obc=|UmFuZG9tSVZYWvMi1Z/OXhtDWVqPapkrnwvDZcObDAkexpQuIlDjfjdji0du3jk7WZDuG32KJfM4XXAqV+gSQ27/i3R0zoWp5JC1zMeADEQ+7QyufISqDu9M8mz4pZTbmr1h4mjXT8w=|
Redirect target: https://www.openbc.com/cgi-bin/user.fpl?op=home
2005/11/04 20:08:32:552 CET [DEBUG] header - >> "GET
/cgi-bin/user.fpl?op=home HTTP/1.1[\r][\n]"
2005/11/04 20:08:32:553 CET [DEBUG] HttpMethodBase - Adding Host request
header
2005/11/04 20:08:32:565 CET [DEBUG] HttpMethodDirector - Closing the
connection.
2005/11/04 20:08:32:783 CET [DEBUG] HttpConnection - Releasing connection
back to connection manager.
Exception in thread "main" java.lang.ClassCastException
at
org.apache.commons.httpclient.params.DefaultHttpParams.getBooleanParameter(DefaultHttpParams.java:207)
at
org.apache.commons.httpclient.params.DefaultHttpParams.isParameterTrue(DefaultHttpParams.java:223)
at
org.apache.commons.httpclient.HttpMethodBase.addCookieRequestHeader(HttpMethodBase.java:1182)
at
org.apache.commons.httpclient.HttpMethodBase.addRequestHeaders(HttpMethodBase.java:1305)
at
org.apache.commons.httpclient.HttpMethodBase.writeRequestHeaders(HttpMethodBase.java:2036)
at
org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:1919)
at
org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:993)
at
org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:395)
at
org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:170)
at
org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396)
at
org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:324)
at myClient.main(myClient.java:57)
--
Telefonieren Sie schon oder sparen Sie noch?
NEU: GMX Phone_Flat http://www.gmx.net/de/go/telefonie
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]