-1

我的项目中有一个请求,我需要登录到外部网站并需要从该网站下载文件。除了用于登录的用户名/密码外,我无权访问该网站。有没有办法使用 C# 来实现这个功能。谢谢!

4

3 回答 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 请求的语言以编程方式完成。所有你需要的是 :

  1. 弄清楚如何正确地向服务器进行身份验证。完成此操作后,您将获得一个身份验证令牌和与此令牌相关的会话。然后,您会将令牌附加到对服务器的所有后续请求。

  2. 找出要发送哪个请求以获取该特定资源。我会假设它是对特定 URL 的 GET 请求。如果您手动执行,请使用Fiddler检查发送了哪些请求。

于 2012-12-15T19:08:40.477 回答