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