2012-02-17 3 views
3

У меня серьезная проблема с логином. Я не могу использовать класс WebBrowser для входа на сайт, потому что WebBrowser - это только класс с одним потоком. Я не могу войти в систему с WebClient, потому что у меня нет файлов cookie. Пытался войти в систему с помощью HttpWebRequest и Iam, угадывая, что я успешно выполнил вход, потому что у меня заголовок: login.success или что-то в этом роде, но когда я вернул исходную страницу, он вернул мне страницу входа, показывающую, что я не зарегистрирован.Войти с использованием WebClient или HttpWebRequest

Iam пытается войти на эту страницу: 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(); 
} 
+0

Похоже, вы не передаете печенье из ответа входа на следующий запрос. Отправьте свой код, и мы поможем вам разобраться в этом. –

ответ

-1

Да, это то, что я думал тоже. Вам нужно установить sessionID из ответа успешного входа для всех последующих запросов.

Смежные вопросы