从URL下载文件,所需的参数和认证(Download file from URL with para

2019-10-29 08:50发布

很抱歉打扰你,但我在一个多星期的审判,也没有找到一个简单而有效的方式来达到这个目标,所以我在这里要问你的帮助。 我有我的工作经常性的任务,按照此步骤:

  1. 访问我公司网站;
  2. 登入;
  3. 搜寻;
  4. 请从搜索结果页面的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());
        }
    }

}

如果您有任何样本,以帮助我实现这个目标,我真的很感激。

非常感谢。

Answer 1:

任何人都没有办法,我能达到这个目标呢? 这里的主要问题是,我没有访问到文件名的URL的事实。 正如我所看到的,当与参数的URL正在调用该文件是从服务器下载的行动。 一些功能,我可以用它来查找文件的名称,并用它做下载它的C#Windows或Web应用程序?



文章来源: Download file from URL with parameters and authentication required