我的项目中有一个请求,我需要登录到外部网站并需要从该网站下载文件。除了用于登录的用户名/密码外,我无权访问该网站。有没有办法使用 C# 来实现这个功能。谢谢!
问问题
1351 次
3 回答
2
这取决于网站类型和身份验证:
1) 使用 WebClient 类
WebClient wc = new WebClient();
wc.Credentials = new NetworkCredential(username, password);
wc.DownloadFile(url, "c:\\");
2)如果第一个不起作用,您可以使用webbrowser控件实现它
HtmlElement ele = webBrowser1.Document.GetElementById("email");
if (ele != null)
ele.InnerText = "username";
ele = webBrowser1.Document.GetElementById("pass");
if (ele != null)
ele.InnerText = "pass";
ele = webBrowser1.Document.GetElementById("Login");
if (ele != null)
ele.InvokeMember("click");
于 2012-12-15T19:06:33.450 回答
0
您可以将 WebBrowser 控件与 WATIN 库一起使用来浏览站点并单击下载按钮。
WebBrowser 控件有一个可以处理的“下载文件”事件
于 2012-12-15T19:06:30.890 回答
0
如果您可以手动完成,您可以使用 C# 或任何其他支持 HTTP 请求的语言以编程方式完成。所有你需要的是 :
弄清楚如何正确地向服务器进行身份验证。完成此操作后,您将获得一个身份验证令牌和与此令牌相关的会话。然后,您会将令牌附加到对服务器的所有后续请求。
找出要发送哪个请求以获取该特定资源。我会假设它是对特定 URL 的 GET 请求。如果您手动执行,请使用Fiddler检查发送了哪些请求。
于 2012-12-15T19:08:40.477 回答