使用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。