Я использую Indy 10 в Delphi 7 для попытки получить доступ к некоторым данным с аппаратного устройства в нашей локальной сети, но доступ к HTML-странице с помощью TIdHTML.Get() возвращает только базовый код, а не страницу, которая отображается браузерами.

Я сохранил файлы HTML и JS на веб-сервере, чтобы вы могли посмотреть на них. Также прилагается скриншот того, как это выглядит в браузере.

https://stationplaylist.com/temp/stl_status.html

https://stationplaylist.com/temp/stl_status.js

https://stationplaylist.com/temp/stl_status.jpg

Я просто хочу узнать, включен или выключен статус входящего потока, но не знаю, как получить к нему доступ. Надеюсь, это возможно каким-то образом с помощью Indy.

Ross

Ответы (1)

Вам нужно понять, что загрузка - это одно (что вы делаете с помощью Indy10), а интерпретация загрузки (файлов) - это другое (что делает ваш интернет-браузер). Небольшое путешествие в то, что делает ваш веб-браузер:

  • Парсинг загруженного stl_status.html, обнаруживающий элементы HTML с атрибутами типа src=, что подразумевает загрузку и этих файлов.
  • Из HTML-страницы видно, что в stl_status.js вызывается функция afterLoad(), которая косвенно выполняет get_Status(), которая вызывает loadDoc('/stl_data.html') (о, подождите, разве это не файл, который мы еще не посмотрели?), которая (конечно же) сама выполняет HTTP-вызов, чтобы просто загрузить этот файл.
  • .

Вероятнее всего, вам не нужно идти таким путем, а можно загрузить stl_data.html напрямую и обработать его в соответствии с его макетом (код JS-файла должен быть понятен для вас).

Повторяю: загрузка файлов не подразумевает рендеринг веб-сайта.

2022 WebDevInsider