使用WebClient或HttpWebRequest登录
我有严重的登录问题。 我不能使用WebBrowser类登录到站点,因为WebBrowser只是单线程类。 我无法使用WebClient登录,因为我没有cookie。 尝试使用HttpWebRequest登录并且Iam猜测我成功登录因为我得到了标题:login.success或类似的东西,但是当我检索源页面时它返回登录页面显示我没有登录。
我想尝试登录此页面: https ://lite.betfair.com/Login.do?s = 000009z
有请求的url : https : //lite.betfair.com/SLoginsubmit.do?s = 000009z&secure = true&username = user&password = pass
码:
HttpWebRequest request; HttpWebResponse response; CookieContainer cookies; string url = "https://lite.betfair.com/SLoginsubmit.do?s=000009z&secure=true&username=user&password=pass"; request = (HttpWebRequest)WebRequest.Create(url); request.AllowAutoRedirect = false; request.CookieContainer = new CookieContainer(); response = (HttpWebResponse)request.GetResponse(); cookies = request.CookieContainer; response.Close(); request = (HttpWebRequest)WebRequest.Create("https://lite.betfair.com/Events.do?s=000209z"); request.AllowAutoRedirect = false; request.CookieContainer = cookies; response = (HttpWebResponse)request.GetResponse(); using (Stream s = response.GetResponseStream()) { StreamReader sr = new StreamReader(s); string line; line = sr.ReadToEnd(); }
尝试: request.CookieContainer = cookies ;
而不是cookies = request.CookieContainer;
。
HttpWebRequest.CookieContainer
是的,这也是我的想法。 您需要从成功登录的响应中为所有即将到来的请求设置sessionID。