Hi Mike, Oleg : I've been trying different things and it seems "MrPostman" (inside www.sf.net ) got me a little closer. I can use the following programs and try to log into Yahoo. Although I still can't see the logged-in page, but if I supply the wrong Id/password, it will tell me, seems to me it's a step closer than what I can get by using HttpClient.
I hope there is something in MrPostman that HttpClient can absorb so that I only need to use HttpClient alone to login. I hope I just need to supply it with an url and HttpClient will handle all the troubles for me transparently without me knowing it (or is it posibble, just like a browser does ?). Thanks. I am attaching : Yahoo_Login.java YahooMailSession.java You still need "MrPostman-1.0.3beta2.jar" from the site : www.sf.net (I tried to attach it to the email, it didn't work.) Please let me know if someone get a break through ^_^ Frank -----Original Message----- From: Michael Becke [mailto:[EMAIL PROTECTED] Sent: Friday, April 30, 2004 11:06 AM To: Commons HttpClient Project Subject: Re: Yahoo login with Httpclient I'm not sure. The POST/GET is being done via JavaScript, and I'm not exactly sure which it's doing. I have a feeling either will work. Mike Min (Frank) Ni wrote: > OK thanks. Should the second GetMethod() in loginMD5() be PostMethod() ? > > Frank > > -----Original Message----- > From: Michael Becke [mailto:[EMAIL PROTECTED] > Sent: Friday, April 30, 2004 10:19 AM > To: Commons HttpClient Project > Subject: Re: Yahoo login with Httpclient > > > Hi Frank, > > I was also unable to get this to work. I just wanted to post the code > that I was trying with, thinking that it may help you to figure this one > out. > > Mike > > Min (Frank) Ni wrote: > >>Hello Mike: >> >>According to your advice, I changed the code to look like the >>following, but I am getting "Invalid Password" error. I used the Id >>and password from the IE browser and it logged me in. >> >>I noticed in your loginMD5(), there are two GetMethod()'s, should the >>second one be "PostMethod()" ? I'm not familiar with HttpClient >>enough to be sure. >> >>============================================================================================================== >> import java.io.BufferedReader; import java.io.InputStream; import >>java.io.InputStreamReader; import java.security.MessageDigest; import >>java.util.regex.Matcher; import java.util.regex.Pattern; >> >>import org.apache.commons.httpclient.HttpClient; import >>org.apache.commons.httpclient.NameValuePair; import >>org.apache.commons.httpclient.cookie.CookiePolicy; import >>org.apache.commons.httpclient.methods.GetMethod; import >>org.apache.commons.httpclient.methods.PostMethod; //import >>org.apache.commons.httpclient.params.HttpMethodParams; >> >>public class YahooLogin { private HttpClient client; >> >>private String password = "javatest"; private String login = >>"javamr"; >> >>private String host; private String u; private String challenge; >> >>public YahooLogin() { client = new HttpClient(); >> >>// >>client.getParams().setParameter(HttpMethodParams.USER_AGENT, >>"Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-us) AppleWebKit/124 >>(KHTML, like Gecko) Safari/125.1"); } >> >>public void parseResponse(InputStream is) throws Exception { >>BufferedReader reader = new BufferedReader(new >>InputStreamReader(is)); String line = null; >> >>Pattern uP = Pattern.compile(".*name=\"\\.u\" value=\"([^\"]+)\".*"); >> Pattern challengeP = Pattern.compile(".*name=\"\\.challenge\" >>value=\"([^\"]+)\".*"); Pattern hostP = >>Pattern.compile(".*method=post action=\"([^\"]+)\".*"); >> >>while ((line = reader.readLine()) != null) { Matcher uM = >>uP.matcher(line); Matcher challengeM = challengeP.matcher(line); >>Matcher hostM = hostP.matcher(line); >> >>if (uM.matches()) { u = uM.group(1); } if (challengeM.matches()) { >>challenge = challengeM.group(1); } if (hostM.matches()) { host = >>hostM.group(1); } } >> >>System.out.println("u=" + u); System.out.println("host=" + host); >>System.out.println("challenge=" + challenge); } >> >>public void loginNormal() throws Exception { >> >>GetMethod get = new >>GetMethod("http://login.yahoo.com/config/login?.src=www&.done=http://www.yahoo.com"); >> >> >>get.setRequestHeader("user-agent", "Mozilla/5.0 (Macintosh; U; PPC >>Mac OS X; en-us) AppleWebKit/124 (KHTML, like Gecko) Safari/125.1"); >> >>client.executeMethod(get); >> >>parseResponse(get.getResponseBodyAsStream()); >> >>NameValuePair[] pairs = { new NameValuePair("login", login), new >>NameValuePair("password", password), new NameValuePair(".tries", >>"1"), new NameValuePair(".src", "www"), new NameValuePair(".md5", >>""), new NameValuePair(".hash", ""), new NameValuePair(".js", ""), >>new NameValuePair(".last", ""), new NameValuePair(".promo", ""), new >>NameValuePair(".intl", "us"), new NameValuePair(".bypass", ""), new >>NameValuePair(".partner", ""), new NameValuePair(".u", u), new >>NameValuePair(".v", "0"), new NameValuePair(".challenge", challenge), >> new NameValuePair(".yplus", ""), new NameValuePair(".emailCode", >>""), new NameValuePair("pkg", ""), new NameValuePair("stepid", ""), >>new NameValuePair(".ev", ""), new NameValuePair("hasMsgr", "0"), new >>NameValuePair(".chkP", "Y"), new NameValuePair(".done", >>"http://www.yahoo.com"), new NameValuePair(".persistent", "y"), }; >> >>PostMethod post = new PostMethod(host); >> >>post.setRequestHeader("user-agent", "Mozilla/5.0 (Macintosh; U; PPC >>Mac OS X; en-us) AppleWebKit/124 (KHTML, like Gecko) Safari/125.1"); >> >>post.addRequestHeader("Accept", "*/*"); >>post.addRequestHeader("Accept-Language", "en-us, ja;q=0.21, >>de-de;q=0.86, de;q=0.79, fr-fr;q=0.71, fr;q=0.64, nl-nl;q=0.57, >>nl;q=0.50, it-it;q=0.43, it;q=0.36, ja-jp;q=0.29, en;q=0.93, >>es-es;q=0.14, es;q=0.07"); post.setRequestBody(pairs); >>client.executeMethod(post); >> >>post.getResponseBodyAsString(); } >> >>public void loginMD5() throws Exception { >> >>GetMethod get = new >>GetMethod("http://login.yahoo.com/config/login?.src=www&.done=http://www.yahoo.com"); >> >> >>get.setRequestHeader("user-agent", "Mozilla/5.0 (Macintosh; U; PPC >>Mac OS X; en-us) AppleWebKit/124 (KHTML, like Gecko) Safari/125.1"); >> >>client.executeMethod(get); >> >>parseResponse(get.getResponseBodyAsStream()); >> >>MessageDigest digest = MessageDigest.getInstance("MD5"); >>digest.update(password.getBytes("US-ASCII")); >> >>String hash1 = new String(digest.digest(), "US-ASCII"); String hash2 >>= hash1 + challenge; >> >>digest.update(hash2.getBytes("US-ASCII")); String hash = new >>String(digest.digest(), "US-ASCII"); >> >>NameValuePair[] pairs = { new NameValuePair("login", login), new >>NameValuePair("password", hash), new NameValuePair(".save", "1"), new >>NameValuePair(".tries", "1"), new NameValuePair(".src", "www"), new >>NameValuePair(".md5", "1"), new NameValuePair(".hash", "1"), new >>NameValuePair(".js", "1"), new NameValuePair(".last", ""), new >>NameValuePair(".promo", ""), new NameValuePair(".intl", "us"), new >>NameValuePair(".bypass", ""), new NameValuePair(".u", u), new >>NameValuePair(".v", "0"), new NameValuePair(".challenge", challenge), >> new NameValuePair(".yplus", ""), new NameValuePair(".emailCode", >>""), new NameValuePair("pkg", ""), new NameValuePair("stepid", ""), >>new NameValuePair(".ev", ""), new NameValuePair("hasMsgr", "0"), new >>NameValuePair(".chkP", "Y"), new NameValuePair(".done", >>"http://www.yahoo.com"), new NameValuePair(".persistent", "y"), }; >> >>get = new GetMethod("http://login.yahoo.com/config/login"); >> >>get.setRequestHeader("user-agent", "Mozilla/5.0 (Macintosh; U; PPC >>Mac OS X; en-us) AppleWebKit/124 (KHTML, like Gecko) Safari/125.1"); >> >>get.addRequestHeader("Accept", "*/*"); >>get.addRequestHeader("Accept-Language", "en-us, ja;q=0.21, >>de-de;q=0.86, de;q=0.79, fr-fr;q=0.71, fr;q=0.64, nl-nl;q=0.57, >>nl;q=0.50, it-it;q=0.43, it;q=0.36, ja-jp;q=0.29, en;q=0.93, >>es-es;q=0.14, es;q=0.07"); get.setQueryString(pairs); >>client.executeMethod(get); >> >>get.getResponseBodyAsString(); } >> >>public static void main(String[] args) throws Exception { >> >>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", >>"trace"); >>System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.commons.httpclient", >>"debug"); >> >>new YahooLogin().loginNormal(); >> >>new YahooLogin().loginMD5(); >> >>} } >>============================================================================================================== >> >> >>Thanks for your kind help. >> >>Frank >> >>-----Original Message----- From: Michael Becke >>[mailto:[EMAIL PROTECTED] Sent: Thursday, April 29, 2004 10:28 >>PM To: Commons HttpClient Project Subject: Re: Yahoo login with >>Httpclient >> >> >>Oops. Yes, I'm using HttpClient from the HEAD branch. If you take >>out the references to HttpMethodParams and add the following for each >> method, it should work: >> >>method.setRequestHeader("user-agent", "Mozilla/5.0 (Macintosh; U; PPC >> Mac OS X; en-us) AppleWebKit/124 (KHTML, like Gecko) Safari/125.1"); >> >> >>You can also change the user agent to something else if you like. >> >>Mike >> >>On Apr 29, 2004, at 9:54 AM, Min (Frank) Ni wrote: >> >> >> >>>Hi Mike: >>> >>>Thank you for your sample code, I tried to compile it, but got the >>> following errors : >>> >>>======================================================================= >>> ======================================== YahooLogin.java [13:1] >>>package org.apache.commons.httpclient.params does not exist import >>>org.apache.commons.httpclient.params.HttpMethodParams; ^ >>>YahooLogin.java [28:1] cannot find symbol symbol : variable >>>HttpMethodParams location: class YahooLogin >>>client.getParams().setParameter(HttpMethodParams.USER_AGENT, >>>"Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-us) AppleWebKit/124 >>>(KHTML, like Gecko) Safari/125.1"); ^ YahooLogin.java [28:1] cannot >>>find symbol symbol : method getParams() location: class >>>org.apache.commons.httpclient.HttpClient >>>client.getParams().setParameter(HttpMethodParams.USER_AGENT, >>>"Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-us) AppleWebKit/124 >>>(KHTML, like Gecko) Safari/125.1"); ^ 3 errors Errors compiling >>>YahooLogin. >>>======================================================================= >>> ======================================== >>> >>>I have mounted "commons-httpclient-2.0.jar" and >>>"commons-logging.jar" on to my project in NetBeans, Have I missed >>>anything else that has "package >>>org.apache.commons.httpclient.params" ? >>> >>>Frank >>> >>>-----Original Message----- From: Michael Becke >>>[mailto:[EMAIL PROTECTED] Sent: Thursday, April 29, 2004 >>>12:35 AM To: Commons HttpClient Project Subject: Re: Yahoo login >>>with Httpclient >>> >>> >>>Well, I've tried a variety of things, but I cannot successfully >>>login to yahoo. Attached is the code that I've been using. It >>>includes two methods, one to simulate logging in from a browser >>>with JavaScript turned off, and another to simulate with JS on. >>>Perhaps someone else can figure it out from here. >>> >>>Mike >>> >>> >>>--------------------------------------------------------------------- >>> 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] >> > > > --------------------------------------------------------------------- > 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]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]