很抱歉打扰你,但我在一个多星期的审判,也没有找到一个简单而有效的方式来达到这个目标,所以我在这里要问你的帮助。 我有我的工作经常性的任务,按照此步骤:
- 访问我公司网站;
- 登入;
- 搜寻;
- 请从搜索结果页面的KMZ文件。
我每周都做,需要每次下载100多个文件,你知道吗?
我有所有的结果,我需要一个列表,所以我创建在C#应用程序自动完成这一过程,但是当文件被下载是不正确的类型(KMZ),其内容为登录页面的源代码。 这是因为我没有正确的文件名,它是由一些参数的URL加载像https://mycompanywebsite.org/files/fileViewServlet?Parameter1=abx&Parameter2=xyz&Parameter3=123
这就是我所做的。
//Download the file for the returned list
foreach (DataGridViewRow row in dataGridView1.Rows)
{
using (WebClient client = new WebClient())
{
//client.Credentials = new NetworkCredential("username", "password");
String credentials = Convert.ToBase64String(Encoding.ASCII.GetBytes("myusernae" + ":" + "mypassword"));
client.Headers[HttpRequestHeader.Authorization] = $"Basic {credentials}";
try
{
//Download the KMZ
client.Proxy = null;
client.QueryString.Add("parameter1", "value");
client.QueryString.Add("parameter2", "value");
client.QueryString.Add("parameter3", "value");
outputFileName = "File_Name_" + row.Cells["FieldTitle"].Value.ToString() + ".kmz";
client.DownloadFile("https://mycompanywebsite.org/files/fileViewServlet?", strTargetFolder + nomeArquivoEstaca);
}
catch (WebException ex)
{
MessageBox.Show(ex.ToString());
}
}
}
如果您有任何样本,以帮助我实现这个目标,我真的很感激。
非常感谢。