很抱歉打扰您,但是我尝试了一个多星期,却没有找到实现此目标的简单有效的方法,因此,我在这里寻求您的帮助。我的工作有一个经常性的任务,需要遵循以下步骤:
我每周都要这样做,每次需要下载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());
}
}
}
如果您有任何样本可以帮助我实现这一目标,我将不胜感激。
非常感谢。
答案 0 :(得分:0)
没有人能达到我的目标吗?这里的主要问题是我无法访问URL上的文件名。如我所见,当调用具有该参数的URL时,该文件是从服务器操作中下载的。我可以使用某些函数来查找文件名并将其用于在C#Windows或Web应用程序中下载吗?