У меня есть приложение C# для доступа к данным с стороннего веб-сайта. Я использую WebClient, и я вызываю DownloadData и обрабатываю байты (DownloadFile даст аналогичные результаты).Скачивание файла с webscraper иногда приводит к HTML-странице
Это прекрасно работало до недавнего времени. Теперь, чаще всего, вместо того, чтобы выбрать нужный файл XML, я получаю HTML-страницу, аналогичную:
<!-- _localBinding -->
<!-- _lcid="1033" _version="" -->
<html>
<head>
<meta HTTP-EQUIV="Content-Type" content="text/html; charset=utf-8" />
<meta HTTP-EQUIV="Expires" content="0" />
<noscript>
<meta http-equiv="refresh" content="0; url=/_layouts/spsredirect.aspx?noscript=1" />
</noscript>
<script language="javascript" src="/_layouts/1033/init.js"></script>
<script language="javascript" src="/_layouts/1033/core.js"></script>
<script language="javascript">
var requestedUrl = escapeProperly(window.location.href);
STSNavigate("/CustomErrors/ErrorPage.aspx?oldUrl=" + requestedUrl);
</script>
</head>
<body></body>
</html>
Я проковылял, почему это пошло из последовательно работающих последовательно дает мне проблемы. Иногда я могу получить ожидаемый файл XML. У вас есть идея, что может быть эта проблема и как я могу ее исправить?
Возможно, стоит отметить, что если бы я вручную щелкнул ссылку загрузки в браузере, окно javascript всплыло и закроется перед загрузкой файла. Я использую WebBrowser для перехвата нестатического URL этого всплывающего окна и передает эту ссылку (и заголовки/данные cookie) в WebClient. Ссылка будет выглядеть примерно так https://foo.bar/Something.axd?Session=1234vv1234Format=XML
Спасибо за ваше время
Благодарим за быстрый ответ! Это обнадеживает. Их сайт, похоже, очень плохой, но это также мой первый случай, когда мы делаем что-то подобное. Что касается запроса, единственными специальными символами, которые я вижу в URL-адресе, являются: + и & –
Я часто работал с платежными шлюзами, и мы сталкивались с такими странностями. Я нашел на ранней стадии, что вы могли потратить три дня на то, чтобы угадать такую проблему, а затем разрешить ее одним письмом в свою службу поддержки. Попытка отладить ошибку, не имея возможности увидеть ошибку, очень сложна. – DVK