我的项目中有一个请求,我需要登录外部网站,需要从网站下载文件。我没有任何访问该网站,除了用户名/密码登录。有没有办法使用C#实现此功能。谢谢!
答案 0 :(得分: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");
答案 1 :(得分:0)
您可以将WebBrowser控件与WATIN库一起使用,以浏览该站点并单击下载按钮。
WebBrowser控件有一个可以处理的“下载文件”事件
答案 2 :(得分:0)
如果您可以手动执行此操作,则可以使用C#或任何其他支持HTTP请求的语言以编程方式执行此操作。您所需要的只是:
了解如何正确验证服务器。完成此操作后,您将获得一个身份验证令牌以及与此令牌关联的会话。然后,您将令牌附加到服务器的所有后续请求。
找出要获取该特定资源的请求。我认为它是特定URL的GET请求。如果您手动执行,请使用Fiddler检查发送的请求。