User-10305153 Ответов: 1

Загрузите zip-файл с веб-сайта, отправив идентификатор пользователя и пароль в C#


Привет,

Я хотел бы загрузить zip-файл с помощью C#.

Код C# должен перейти на веб-страницу Торговый Центр Платц и введите идентификатор пользователя и пароль, а затем нажмите кнопку Отправить.

Разместите который, Следующая страница откроется в том, что у нас есть сетка. Код должен нажать на zip-файл в столбце "45 дней" и загрузить zip-файл.

Подробный файл excel со скриншотом можно скачать по ссылке ниже.

Platts_Data.xlsx

Получение ошибки в этой строке :
wb.DownloadFile(downloadUri, destination);

Сообщение об ошибке=было предпринято слишком много попыток автоматического перенаправления.

Спасибо,
Акаши

Что я уже пробовал:

    class Program
    {
        static void Main(string[] args)
        {
            string strDatetimestamp = DateTime.Now.ToUniversalTime().ToString("yyyy-mm-dd-hh-mm-ss");

            string LoginUrl = "https://pmc.platts.com/Login.aspx";
            string Referer = "https://pmc.platts.com/Login.aspx";
            string _userName = "abc@xyz.com"; // please change
            string _password = "abcdefghi"; // please change
            string downloadUri = "https://pmc.platts.com/MQT/MQTHandler.aspx?fn=Platts_Market_Data_BA_hist-" + strDatetimestamp + ".zip"; // please change
            string destination = Path.Combine(@"C:\", "Platts_Market_Data_BA_hist - " + strDatetimestamp + ".zip");  //please change
            string postData = String.Format("logonid={0}&logonpswd={1}&Log On=Log On", _userName, _password);

            string cookie = HTTHelper.ProcessLogin(postData, LoginUrl, Referer);

            WebClient wb = new WebClient();
            wb.Headers.Add(HttpRequestHeader.Cookie, cookie);
            wb.DownloadFile(downloadUri, destination);
        }
    }
}

lmoelleb

Не бросайте здесь кучу кода и не ждите, что люди сделают вашу работу. Используйте отладчик, изолируйте строку, где результат не тот, что вы ожидаете. Затем потратьте время, пытаясь понять, почему он ведет себя так, как он делает. Как только вы это сделаете, обновите этот вопрос. будьте конкретны в том, что вы ожидаете, и что на самом деле происходит на линии, где все идет не так. Если вы не знаете, как отлаживать, изучите его. Программирование без отладки-пустая трата времени.

1 Ответов

Рейтинг:
0

KarstenK

Класс WebClient имеет Полномочия свойство, которое обеспечивает аутентификацию Генделя. Вам нужно предоставить некоторые учетные данные с этими учетными данными пользователя, как указано в этом документе фрагмент кода.

Ваш код входа в систему небезопасен, потому что пароль отправлен необработанный по сети. Это полный провал старых времен.

Если это не сработает, вам следует связаться с веб-мастерами этого сайта.