Здравствуйте, Аноним, Вы писали:
А>Мы зачитываем страницы через HttpWebRequest и HttpWebResponse. А>Как модифицировать код внизу чтобы сервер бумал что запрос идет через браузер IE?
вероятно записать в свойство UserAgent строку отсюда
Das Reich der Freiheit beginnt da, wo die Arbeit aufhört. (c) Karl Marx
Re[2]: HttpWebRequest, HttpWebResponse и IE
От:
Аноним
Дата:
08.07.10 13:07
Оценка:
Здравствуйте, ksg71, Вы писали:
А>>Мы зачитываем страницы через HttpWebRequest и HttpWebResponse. А>>Как модифицировать код внизу чтобы сервер бумал что запрос идет через браузер IE?
K>вероятно записать в свойство UserAgent строку отсюда
Большое спасибо
Ссылка не работает, то наверное понятно на что смотреть.
Это единственное свойство которое надо менять?
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, ksg71, Вы писали:
А>>>Мы зачитываем страницы через HttpWebRequest и HttpWebResponse. А>>>Как модифицировать код внизу чтобы сервер бумал что запрос идет через браузер IE?
K>>вероятно записать в свойство UserAgent строку отсюда
А>Большое спасибо А>Ссылка не работает, то наверное понятно на что смотреть.
Здравствуйте, Аноним, Вы писали:
А>Мы зачитываем страницы через HttpWebRequest и HttpWebResponse. А>Как модифицировать код внизу чтобы сервер бумал что запрос идет через браузер IE?
А>
А>//request.CookieContainer = ???
А>
Я делал так: (куки будут использоваться во всех запросах)
CookieContainer cc = new CookieContainer();
...
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(myURL);
request.CookieContainer = cc;
Вообще для полноценной имитации IE (или браузера вообще; например для отработки JS на страницах) лучше использовать что-то типа WatiN. Впрочем, это IE и будет
Re[2]: HttpWebRequest, HttpWebResponse и IE
От:
Аноним
Дата:
16.07.10 03:42
Оценка:
Здравствуйте, andrey82, Вы писали:
A>Я делал так: (куки будут использоваться во всех запросах) A>
A>CookieContainer cc = new CookieContainer();
A>...
A>HttpWebRequest request = (HttpWebRequest)WebRequest.Create(myURL);
A>request.CookieContainer = cc;
A>
A>Вообще для полноценной имитации IE (или браузера вообще; например для отработки JS на страницах) лучше использовать что-то типа WatiN. Впрочем, это IE и будет
1. У меня на форме есть WebBroser control. Я через него логинусь на сайт (ввожу имя и пароль). Потом начинаю тянуть странички с сайта чарез HttpWebRequest. Как мне вытянуть CookieContainer из WebBroser control чтобы передать их в request.CookieContainer?
2. Можно ли вместо WebBroser control использовать некий контрол из WatiN? WatiN вроде все делает, но открывает окно IE, а мне это совсем не нужно.
А>1. У меня на форме есть WebBroser control. Я через него логинусь на сайт (ввожу имя и пароль). Потом начинаю тянуть странички с сайта чарез HttpWebRequest. Как мне вытянуть CookieContainer из WebBroser control чтобы передать их в request.CookieContainer?
Сайт полностью на DHTML? (Без Flash и т.п. вставок)? Тогда WatiN нормально справится с задачей ввода текста в поля и нажатием кнопки:
А>2. Можно ли вместо WebBroser control использовать некий контрол из WatiN? WatiN вроде все делает, но открывает окно IE, а мне это совсем не нужно.
WatiN, насколько я знаю, использует отдельно создаваемый процесс IE... про контрол не понял .
Для скрытия создаваемого WatiN'ом процесса IE:
WatiN.Core.Settings.Instance.MakeNewIeInstanceVisible = false;
WatiN.Core.Settings.AutoMoveMousePointerToTopLeft = false;
using (WatiN.Core.IE ie = new WatiN.Core.IE(url))
{
...
}
Re[4]: HttpWebRequest, HttpWebResponse и IE
От:
Аноним
Дата:
16.07.10 05:57
Оценка:
У меня выбор: использовать WatiN или нет
Без WatiN
Сейчас работает так (ну или пытается):
На форме есть стандартный System.Windows.Forms.WebBrowser контрол и в него грузится сайт.
На сайте я ввожу user and password.
Из webBrowser.Document.Cookie cтрою System.Net.CookieContainer и передаю это в HttpWebRequest.
Но GetResponse валится.
Прямо copy-n-paste с экрана:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(myURL);
request.CookieContainer = CreateCookieContainer(webBrowser.Document.Cookie, webBrowser.Document.Domain);
request.Method = "GET";
request.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.2; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)"; //??
request.ContentType = "application/x-www-form-urlencoded";
System.Net.HttpWebResponse response = (System.Net.HttpWebResponse)request.GetResponse(); //Exception
Второе, что мне приходит в голову — это использовать WatiN
Тут я не понимаю как ему передать юзера и пароль.
Это не работает:
IE browser = new IE(url, new LogonDialogHandler("user", "pwd"), false);
Еще мне хотелось бы вставить browser как контрол в форму. Но можно и скрыть, про
WatiN.Core.Settings.Instance.MakeNewIeInstanceVisible = false;
WatiN.Core.Settings.AutoMoveMousePointerToTopLeft = false;
я не знал.
В общем либо понять как грамотно через HttpWebRequest запрос выполнить либо как залогиниться через WatiN
HttpWebRequest мне пока кажется предпочтительнее.
А>>1. У меня на форме есть WebBroser control. Я через него логинусь на сайт (ввожу имя и пароль). Потом начинаю тянуть странички с сайта чарез HttpWebRequest. Как мне вытянуть CookieContainer из WebBroser control чтобы передать их в request.CookieContainer?
A>Сайт полностью на DHTML? (Без Flash и т.п. вставок)? Тогда WatiN нормально справится с задачей ввода текста в поля и нажатием кнопки:
A>
A>ie.TextField("code").TypeText(textvalue);
A>ie.Button(WatiN.Core.Find.By("onclick", "codeCheck();")).Click();
A>
А>>2. Можно ли вместо WebBroser control использовать некий контрол из WatiN? WatiN вроде все делает, но открывает окно IE, а мне это совсем не нужно.
A>WatiN, насколько я знаю, использует отдельно создаваемый процесс IE... про контрол не понял .
A>Для скрытия создаваемого WatiN'ом процесса IE: A>
A>WatiN.Core.Settings.Instance.MakeNewIeInstanceVisible = false;
A>WatiN.Core.Settings.AutoMoveMousePointerToTopLeft = false;
A>using (WatiN.Core.IE ie = new WatiN.Core.IE(url))
A>{
A>...
A>}
A>
Здравствуйте, Аноним, Вы писали:
А>У меня выбор: использовать WatiN или нет
А>Второе, что мне приходит в голову — это использовать WatiN А>Тут я не понимаю как ему передать юзера и пароль. А>Это не работает: А>
А>IE browser = new IE(url, new LogonDialogHandler("user", "pwd"), false);
А>
Логин и пароль на сайте вводятся в web-контрол или диалоговое окно?
А>В общем либо понять как грамотно через HttpWebRequest запрос выполнить либо как залогиниться через WatiN А>HttpWebRequest мне пока кажется предпочтительнее.
Re[6]: HttpWebRequest, HttpWebResponse и IE
От:
Аноним
Дата:
16.07.10 12:39
Оценка:
Здравствуйте, andrey82, Вы писали:
A>Логин и пароль на сайте вводятся в web-контрол или диалоговое окно?
Контрола нету. Вот так:
LogonDialogHandler logonDialogHandler = new LogonDialogHandler("user", "pwd");
IE browser = new IE(url, logonDialogHandler, false);
в результате открывается новое окно IE
А>>В общем либо понять как грамотно через HttpWebRequest запрос выполнить либо как залогиниться через WatiN А>>HttpWebRequest мне пока кажется предпочтительнее.
А>1. У меня на форме есть WebBroser control. Я через него логинусь на сайт (ввожу имя и пароль). Потом начинаю тянуть странички с сайта чарез HttpWebRequest. Как мне вытянуть CookieContainer из WebBroser control чтобы передать их в request.CookieContainer?
1. Зачем вы это делаете? Имхо, сочетать WebBrowser с HttpWebRequest — не лучшая идея.
2. Не мучайте себя, поставьте fiddler и посмотрите полную сессию под ним. Потом скопируйте все нужные хидеры в HttpWebRequest.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.