Hello Frank,

the problem with the Sun site is that HttpClient does not
support cross host redirects. See here for directions:

http://jakarta.apache.org/commons/httpclient/redirects.html

For Yahoo with it's HTTPS URL, you have to install or
enable SSL support. See here for directions:

http://jakarta.apache.org/commons/httpclient/sslguide.html


cheers and good luck,
  Roland






"Min (Frank) Ni" <[EMAIL PROTECTED]>
28.04.2004 16:28
Please respond to "Commons HttpClient Project"
 
        To:     "Commons HttpClient Project" 
<[EMAIL PROTECTED]>, <[EMAIL PROTECTED]>
        cc: 
        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:[EMAIL PROTECTED]
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: 
[EMAIL PROTECTED]
> For additional commands, e-mail: 
[EMAIL PROTECTED]
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: 
[EMAIL PROTECTED]
For additional commands, e-mail: 
[EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: 
[EMAIL PROTECTED]
For additional commands, e-mail: 
[EMAIL PROTECTED]


Reply via email to