我有一个简单的Windows窗体应用程序,它使用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下载/。 无法打开此网站。请求的网站不可用或无法找到。请稍后再试。
我正在使用Windows 10,服务器是Windows server 2016。