У меня есть простое приложение Windows Forms, которое открывает веб-страницу с помощью WebBrowser
, заполняет поля имени пользователя и пароля и отправляет форму, затем я просто получаю из нее cookie-файл и использую его для загрузки файлов с этого сайта, используя HttpWebRequest
:
public static CookieContainer GetCookieContainer(string username, string password)
{
WebBrowser wb = new WebBrowser(){ ScriptErrorsSuppressed = true };
bool completed = false;
wb.DocumentCompleted += (s, e) =>
{
HtmlElement el = wb.Document.GetElementById("email");
if (el != null)
{
el.SetAttribute("value", username);
wb.Document.GetElementById("password").SetAttribute("value", password);
wb.Document.Forms["registration"].InvokeMember("submit");
}
else
completed = true;
};
wb.Navigate("https://somesite.com/login");
do
{
Application.DoEvents();
} while (!completed);
return GetUriCookieContainer(new Uri("https://somesite.com"));
}
Приведенный выше код отлично работает на моем локальном компьютере, и я могу загрузить CookieContainer и использовать его для загрузки файла. но когда я запускаю его на сервере, я получаю сообщение об ошибке:
Невозможно загрузить / с somesite.com.
Невозможно открыть этот интернет-сайт. Запрашиваемый сайт либо недоступен, либо не может быть найден. Пожалуйста, попробуйте позже.
![enter image description here](https://i.stack.imgur.com/QGhcW.png)
Я использую Windows 10, а сервер - Windows Server 2016.