微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

VB.NET 控制台应用程序 - 登录网站并下载文件

如何解决VB.NET 控制台应用程序 - 登录网站并下载文件

我正在开发一个 VB.NET 控制台应用程序,它会自动从不同的网站下载文本文件。到目前为止我一直在使用

My.Computer.Network.DownloadFile(url,local_path,username,password)

它运行良好 - 但有一个网站使用 cookie。在正常情况下,我必须在浏览器中手动访问该网站,通过在登录表单中输入我的凭据登录,按“登录”按钮,然后有一个链接可以让我下载文件。 如果我在正常下载功能中使用此链接,我总是收到一条消息“未登录”。所以这基本上是我的问题: 在我告诉它下载文件之前,我需要使用 WebClient 或 HttpWebRequest 调用此 URL 并使用我的凭据登录

但是,我在任何地方都找不到解决此问题的好示例或指南。 到目前为止,我已经尝试了以下方法

Dim client As New WebClient
Dim values As New NameValueCollection()
values.Add("login[username]","<my_login>")
values.Add("login[password]","<my_password>")
client.UploadValues("https://www.website.com/customer/account/login/",values)
Dim strDL As String = client.DownloadString("https://www.website.com/downloadFile.PHP/")
Console.WriteLine(strDL)

这不起作用,我的控制台只是显示“未登录”。

我知道您也可以使用 CookieContainer,但不能使用 WebClient,只能使用 HttpWebRequest。我想我还没有掌握那个概念。在我的情况下,网站的 cookie 会在 1 小时后过期,所以我认为我使用 NameValueCollection 的方法也不起作用(或者它可能会但只有在 cookie 有效的情况下)所以我的猜测是我必须以某种方式登录网站,获取 cookie 名称和值,然后使用这些信息下载文件。但是,正如我所说,我在任何地方都找不到一个很好的例子来说明如何做到这一点。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。