Скачать файл с URL с параметрами и аутентификацией требуется - PullRequest
0 голосов
/ 11 октября 2018

Извините, что беспокою вас, но я пытался в течение более недели и не нашел простого и эффективного способа достичь этой цели, поэтому я здесь, чтобы попросить вас о помощи.У меня есть повторяющаяся задача в моей работе, которая состоит из следующих шагов:

  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());
        }
    }

}

Если у вас есть образецчтобы помочь мне достичь этой цели, я буду очень признателен.

Большое спасибо.

1 Ответ

0 голосов
/ 15 октября 2018

Ни у кого нет способа, которым я могу достичь этой цели?Основная проблема здесь заключается в том, что у меня нет доступа к имени файла в URL.Как я вижу, файл загружается с серверного действия, когда вызывается URL с этими параметрами.Какая-то функция, которую я могу использовать, чтобы найти имя файла и использовать его, действительно загружает его в c # windows или веб-приложении?

...