C# httpwebrequest и JavaScript

В java8 + это можно записать в одну строку следующим образом:

collectionObjec.sort (comparator_lamda) или comparator.comparing (CollectionType :: getterOfProperty)

код:

ListOfActiveAlarmObj.sort((a,b->a.getTimeStarted().compareTo(b.getTimeStarted())))

или

ListOfActiveAlarmObj.sort(Comparator.comparing(ActiveAlarm::getTimeStarted))
19
задан MattGrommes 5 February 2009 в 14:24
поделиться

5 ответов

Если я правильно интерпретирую Ваш вопрос, нет никакого простого решения для Вашей проблемы.

Вы очищаете HTML с сервера и так как Ваш код C# не является реальным веб-браузером, он не выполняет клиентские сценарии.

Этот способ, которым Вы не можете получить доступ к информации, которую HTML Вы выбираете, не содержит.

Редактирование: я не знаю, насколько сложный эти вызовы Ajax с исходного веб-сайта, но Вы могли использовать Firebug или Скрипача для IE, чтобы видеть, как запросы выполнены для вызова этих вызовов Ajax в приложении C# также. Таким образом, Вы могли добавить сведения, Вам будет нужно. Но это - только теоретическое решение.

10
ответ дан 30 November 2019 в 03:38
поделиться

Просто идея, но существует способ сделать, чтобы .NET загрузил веб-страницу, как будто это было в браузере: использование Системы. Windows. Формы

Вы могли Загрузить веб-страницу в управление WebBrowser

WebBrowser wb = new WebBrowser();
wb.ScrollBarsEnabled = false;
wb.ScriptErrorsSuppressed = true;
wb.Navigate(url);
while (wb.ReadyState != WebBrowserReadyState.Complete) { Application.DoEvents(); }
wb.Document.DomDocument.ToString()

, Это, вероятно, даст Вам пред ajax DOM, но возможно существует способ позволить ему выполнить ajax сначала.

14
ответ дан 30 November 2019 в 03:38
поделиться

При открытии веб-страницы в веб-браузере это - браузер, который выполняет JavaScript и загружает дополнительные ресурсы, используемые страницей (изображения, сценарии, и т.д.). HttpWebRequest отдельно не сделает ни одного из этого, он только загрузит HTML для страницы, которую Вы запросили. Это никогда не будет выполнять ни одного кода javascript/ajax своего собственного.

4
ответ дан 30 November 2019 в 03:38
поделиться

HttpWebRequest не эмулирует веб-браузер, он просто загружает ресурс, на который Вы указываете на него. Это означает, что не выполнит или даже загрузит файлы JavaScript.

необходимо было бы использовать что-то как FireBug, чтобы получить URL для данных, которые вытягивают на пути JavaScript и указать HttpWebRequest на это.

3
ответ дан 30 November 2019 в 03:38
поделиться

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

4
ответ дан 30 November 2019 в 03:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: