Извините, что беспокою вас, но я пытался в течение более недели и не нашел простого и эффективного способа достичь этой цели, поэтому я здесь, чтобы попросить вас о помощи.У меня есть повторяющаяся задача в моей работе, которая состоит из следующих шагов:
- Доступ к веб-сайту моей компании;
- Вход;
- Выполнение поиска;
- Загрузите файл 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());
}
}
}
Если у вас есть образецчтобы помочь мне достичь этой цели, я буду очень признателен.
Большое спасибо.