public static LoginResponseData Login(PreLoginResponseData data, string username, string password, string code, WebProxy proxy) { try { string userNameBase64 = Convert.ToBase64String(Encoding.UTF8.GetBytes(HttpUtility.UrlEncode(username))); password = EncryptPassword(data, password); string url = "http://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.4.18)&_=" + DateTime.Now.TimeStamp(); PostHelper post = new PostHelper(url); post.Type = PostTypeEnum.Post; post.Cookies = new CookieContainer(); post.Cookies.SetCookies(new Uri("http://weibo.com"), data.cookies); post.Proxy = proxy; post.PostItems = LoginData.Create(data, userNameBase64, password, code); string result = post.Post(); var responseData = JsonConvert.DeserializeObject <LoginResponseData>(result); if (responseData != null) { responseData.cookies = PostHelper.GetAllCookies(post.Cookies); return(responseData); } } catch (Exception ex) { } return(null); }
/// <summary> /// 微博预登录 /// </summary> /// <param name="username">用户名</param> /// <returns></returns> public static PreLoginResponseData PreLogin(string username) { try { string userNameBase64 = Convert.ToBase64String(Encoding.UTF8.GetBytes(HttpUtility.UrlEncode(username))); string url = "http://login.sina.com.cn/sso/prelogin.php"; PostHelper post = new PostHelper(url); post.Cookies = new CookieContainer(); post.PostItems = PreLoginData.Create(userNameBase64); string result = post.Post(); Regex re = new Regex("{.*}"); if (re.IsMatch(result)) { var data = re.Match(result).ToString(); var responseData = Newtonsoft.Json.JsonConvert.DeserializeObject <PreLoginResponseData>(data); if (responseData != null) { responseData.cookies = PostHelper.GetAllCookies(post.Cookies); return(responseData); } } } catch { } return(null); }