You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@commons.apache.org by "enrico200165@tiscali.it" <en...@tiscali.it> on 2006/02/10 09:04:00 UTC
HttpClient - After POST I get ONLY the of the response, no
I am trying to perform a login by POSTing, I am using a JAPANES to
test site (mixi.jp)
the login seems to be successful, I get
Login form post: HTTP/1.1 200 OK
When I get the reponse by reading from the stream got this way:
InputStream istream = authpost.getResponseBodyAsStream();
I get only the text below (the spurious characters before <head> are
always present.)
¥Ç¡¼¥¿¤Ï¤¢¤ê¤Þ¤»¤ó¡£<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=EUC-JP">
<META name="description" lang="ja" content="mixi(¥ß¥¯¥·¥£)¤Ï¡¢¤³¤ì¤Þ¤Ç
¤Îͧ¿Í´Ø·¸¤ò¹¹¤ËÁÇŨ¤Ê¤â¤Î¤Ø¤ÈƳ¤¡¢¿·¤·¤¤¸òή¤âÀ¸¤ß½Ð¤¹ÆüËܽé¤Î¥³¥ß¥å¥Ë
¥Æ¥£¥¨¥ó¥¿¡¼¥Æ¥¤¥á¥ó¥È¡¦¥½¡¼¥·¥ã¥ë¥Í¥Ã¥È¥ï¡¼¥¥ó¥°¥µ¥¤¥È¤Ç¤¹¡£">
<title>¥½¡¼¥·¥ã¥ë¡¦¥Í¥Ã¥È¥ï¡¼¥¥ó¥°¥µ¥¤¥È [mixi(¥ß¥¯¥·¥£)]</title>
<script language="javascript" type="text/javascript" src="http://mixi.
jp/mixi3.js"></script>
<link REL=STYLESHEET HREF="http://mixi.jp/mixi.css" TYPE="TEXT/CSS">
</head>
I include most of the code I use (some set... instructions are
omitted because in a separate method,)
PrepareConnection(); // my method, with initializations
// See if we got any cookies
CookieSpec cookiespec = CookiePolicy.getDefaultSpec();
Cookie[] initcookies = cookiespec.match(
Costanti.LOGON_SITE, Costanti.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(Costanti.LOGON_SITE);
NameValuePair action = new NameValuePair("action", "login.
pl");
NameValuePair urlvp = new NameValuePair("next_url",
"/home.pl");
NameValuePair userid = new NameValuePair("email",
"removed"); // this is the user ID
NameValuePair password = new NameValuePair("password",
"removed");
//execute the method
authpost.setRequestBody( new NameValuePair[] {action, urlvp,
userid, password});
try {
client.executeMethod(authpost);
} catch (IOException ex) {
ex.printStackTrace();
}
InputStream istream = authpost.getResponseBodyAsStream(); //
authpost.getResponseBodyAsStream();
new PageTracer().ConsolePrintPageContent(istream);
System.out.println("Login form post: " + authpost.
getStatusLine().toString());
authpost.releaseConnection();
// Usually a successful form-based login results in a
redicrect to another url
int statuscode = authpost.getStatusCode();
if (HttpStatus.SC_OK != statuscode) System.out.println
("HttpStatus not OK, = " + statuscode );
else System.out.println("HttpStatus OK, bene, !!!! = " +
statuscode );
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);
try {
client.executeMethod(redirect);
} catch (IOException ex) {
ex.printStackTrace();
}
System.out.println("Redirect: " + redirect.
getStatusLine().toString());
redirect.releaseConnection();
} else {
System.out.println("Invalid redirect");
System.exit(1);
}
}
Tiscali ADSL 4 Mega Flat
Naviga senza limiti con l'unica Adsl a 4 Mega di velocità a soli 19,95 € al mese!
Attivala subito e hai GRATIS 2 MESI e l'ATTIVAZIONE.
http://abbonati.tiscali.it/adsl/sa/4flat_tc/
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-user-help@jakarta.apache.org