hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kalnichevski, Oleg" <oleg.kalnichev...@bearingpoint.com>
Subject RE: Yahoo login with Httpclient
Date Wed, 28 Apr 2004 15:26:56 GMT

Frank,
I just what to add one thing to what Roland has said: basically the authentication with the
developer.java.sun.com succeeded. You got the session cookie back. HttpClient was simply unable
to process the post-logon redirect, but this limitation is not difficult to work around (see
the redirect guide). I am sure it should not be that difficult to form-based login with get
my.yahoo.com working. Give it another try

Oleg


-----Original Message-----
From: Min (Frank) Ni [mailto:MNi@paperhost.com]
Sent: Wednesday, April 28, 2004 16:28
To: Commons HttpClient Project; olegk@apache.org
Subject: RE: Yahoo login with Httpclient


Hi Oleg:

Thanks for your reply. Two days ago I tried the FormLoginDemo, but after I saw your e-mail
I tried again and got the following response, with my Sun Developer Id and password :

===============================================================================================================

Login form get: HTTP/1.1 200 OK
Initial set of cookies:
None
Apr 28, 2004 10:05:24 AM org.apache.commons.httpclient.HttpMethodBase processRedirectResponse
INFO: Redirect requested but followRedirects is disabled
Login form post: HTTP/1.1 302 Moved Temporarily
Logon cookies:
- JDC=5719750140229660595
- JSESSIONID=developer.java.sun.com-e7b9%253A408fba23%253Af8cfb4dd3166b6ce
- SessionCredentials=5213651892774654901
Redirect target: http://developer.java.sun.com/index.html
Apr 28, 2004 10:05:24 AM org.apache.commons.httpclient.HttpMethodBase checkValidRedirect
WARNING: Error getting URI host
org.apache.commons.httpclient.HttpException: Redirect from host developer.java.sun.com to
java.sun.com is not supported
        at org.apache.commons.httpclient.HttpMethodBase.checkValidRedirect(HttpMethodBase.java:1243)
        at org.apache.commons.httpclient.HttpMethodBase.processRedirectResponse(HttpMethodBase.java:1191)
        at org.apache.commons.httpclient.HttpMethodBase.isRetryNeeded(HttpMethodBase.java:977)
        at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1095)
        at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:675)
        at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:529)
        at FormLoginDemo.main(FormLoginDemo.java:124)
Apr 28, 2004 10:05:24 AM org.apache.commons.httpclient.HttpMethodBase processRedirectResponse
WARNING: Invalid Redirect URI from: http://developer.java.sun.com:80/index.html to: http://java.sun.com/
Redirect: HTTP/1.1 302 Moved Temporarily

===============================================================================================================

The probelm with Yahoo login is even harder to understand, it seems Yahoo redirects several
times, and it requires cookies, I tried the following lines, but it won't work :

===============================================================================================================
    System.getProperties().put("java.protocol.handler.pkgs", "HTTPClient");
   
    String url="https://login.yahoo.com/config/login";
//    String url="http://f1.pg.briefcase.yahoo.com/";
    HttpClient client = new HttpClient();
    HttpMethod method = new GetMethod(url);

    try
    {
//      URL url=new URL("https://login.yahoo.com/config/login");   
/*      String Msg_Out=".fUpdate=1\n"+
                     ".tries=1\n"+
                     ".done=http://f1.pg.briefcase.yahoo.com/\n"+
                     ".src=bc\n"+
                     ".intl=us\n"+
                     "login=javamr\n"+
                     "passwd=javatest\n"+
                     "submit=Login";

      String Msg_Out=".fUpdate=1"+
                     "&.tries=1"+
                     "&.done=http://f1.pg.briefcase.yahoo.com/"+
                     "&.src=bc"+
                     "&.intl=us"+
                     "&login=javamr"+
                     "&passwd=javatest"+
                     "&submit=Login";

//      WriteFile Write_File=new WriteFile(url,Msg_Out);
//      taText.append(Write_File.Text_In.toString());
//      NM_Lib.Display_HTML_In_Browser(Write_File.Text_In.toString());

//      method.setQueryString(Msg_Out);
*/      
      NameValuePair N_V_P[]= { new NameValuePair(".fUpdate","1"),
                               new NameValuePair(".tries","1"),
                               new NameValuePair(".done","http://f1.pg.briefcase.yahoo.com/"),
                               new NameValuePair(".src","bc"),
                               new NameValuePair(".intl","us"),
                               new NameValuePair("login","javamr"),
                               new NameValuePair("passwd","javatest"),
                               new NameValuePair("submit","Login")
                             };
    
      method.setQueryString(N_V_P);
      client.executeMethod(method);
   
    }
    catch (Exception e) { System.out.println(e.toString()); }
      
    String responseBody = method.getResponseBodyAsString();
    method.releaseConnection();
//    NM_Lib.Display_HTML_In_Browser(responseBody);
  }

===============================================================================================================

For testing purpose I've created a Yahoo account ( Id : javamr / Password : javatest ), the
result of the above code is another login page, I wonder if you can help my to login and download
a page from Yahoo Briefcase. Thanks.

Frank


-----Original Message-----
From: Oleg Kalnichevski [mailto:olegk@apache.org]
Sent: Tuesday, April 27, 2004 6:25 PM
To: Commons HttpClient Project
Subject: Re: Yahoo login with Httpclient


Frank,
You need to use so called form-based login. Have a look at this sample
application:

http://cvs.apache.org/viewcvs.cgi/jakarta-commons/httpclient/src/examples/FormLoginDemo.java?rev=1.1.2.1&only_with_tag=HTTPCLIENT_2_0_BRANCH&view=markup

If it does not cut it for you, let me know. I may try to quickly hack it
up for you (provided I do not get stamped with work (the one that helps
me pay the bills I mean))

Oleg


On Wed, 2004-04-28 at 00:08, Min (Frank) Ni wrote:
> Hi:
>
> I've been trying to use Httpclient to programmatically login to Yahoo, but I am not sure
how to do it right, I've tried to follow the sample tutorials and nothing seemed to work for
me, I've also searched the web for answers, but failed, it seems to me that Httpclient is
the closest match for what I am looking for, can somebody please help me ?
>
> Some sample code of how to use Httpclient to login to Yahoo would be very helpful, I
imagine if I supply username and password to it, I would get a page showing I'm logged in,
I am trying to update my Yahoo Briefcase and Yahoo Geocities pages with my program. Is it
possible to do that with Httpclient ? Thanks for any help.
>
> Frank
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: commons-httpclient-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: commons-httpclient-dev-help@jakarta.apache.org
>


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-httpclient-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-httpclient-dev-help@jakarta.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-httpclient-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-httpclient-dev-help@jakarta.apache.org


***************************************************************************************************
The information in this email is confidential and may be legally privileged.  Access to this
email by anyone other than the intended addressee is unauthorized.  If you are not the intended
recipient of this message, any review, disclosure, copying, distribution, retention, or any
action taken or omitted to be taken in reliance on it is prohibited and may be unlawful. 
If you are not the intended recipient, please reply to or forward a copy of this message to
the sender and delete the message, any attachments, and any copies thereof from your system.
***************************************************************************************************

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-httpclient-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-httpclient-dev-help@jakarta.apache.org


Mime
View raw message