【发布时间】:2015-04-29 05:44:52
【问题描述】:
我正在尝试使用 C# 来自动化从以下网站下载文件的过程。但是问题是该站点需要登录,该登录以 html 对话框的形式提示。我似乎无法确定以编程方式输入用户名/密码的方法。尝试过发布它们 - 但没有快乐。有什么想法吗?
https://transparency.entsoe.eu/
提前致谢
【问题讨论】:
标签: c# .net internet-explorer cookies webclient
我正在尝试使用 C# 来自动化从以下网站下载文件的过程。但是问题是该站点需要登录,该登录以 html 对话框的形式提示。我似乎无法确定以编程方式输入用户名/密码的方法。尝试过发布它们 - 但没有快乐。有什么想法吗?
https://transparency.entsoe.eu/
提前致谢
【问题讨论】:
标签: c# .net internet-explorer cookies webclient
如果是网站,我使用NetworkCredential 完成此操作。设置 Http 请求并添加凭据:
request.Credentials = new NetworkCredential(Username, Password);
更多阅读:
https://msdn.microsoft.com/en-us/library/system.net.networkcredential%28v=vs.110%29.aspx
【讨论】:
您应该能够使用 POST 请求登录,然后从服务器获取您是否已登录的响应。我找到了这行代码,请确保按照 POST 中的执行方式执行 POST HTML。
<form id="login-form" method="POST" action="/j_spring_security_check" novalidate="novalidate">
当然,您必须找到“j_spring_security_check()”函数的位置,以便在未发布到同一 URL 的情况下找到执行 POST 的位置。从我在 HTML 中可以看出,POST 请求的目标 URL 可能存储在一个隐藏字段中:
<input type="hidden" name="url" id="target-url" value="/dashboard/show">
确保您尝试将您的帖子放到 /dashbord/show
的相对路径中另外,请确保在发出 POST 请求时设置变量。我在 HTML 中注意到您必须设置以下文字变量:“password”和“email”。
我会帮你找到函数在哪里,但是有超过 15 个 javascript 文件需要查看,我把它留给你。
【讨论】: