问题描述
我在 Delphi 7 中使用 Indy 10 尝试从我们本地网络上的硬件设备访问一些数据,但使用 TIdHTML.Get()
访问 HTML 页面仅返回基本代码而不是显示的页面通过浏览器。
我已将 HTML 和 JS 文件保存到网络服务器,以便您查看它们。还包括它在浏览器中的外观的屏幕截图。
https://stationplaylist.com/temp/stl_status.html
https://stationplaylist.com/temp/stl_status.js
https://stationplaylist.com/temp/stl_status.jpg
我只想知道传入流状态是打开还是关闭,但不知道如何访问它。我希望能以某种方式使用 Indy。
解决方法
你必须明白下载是一回事(你用 Indy10 做的),解释下载是另一回事(你的互联网浏览器做的)。网络浏览器功能的简短介绍:
- 解析下载的 stl_status.html,发现具有
src=
等属性的 HTML 元素,这意味着也下载这些文件。 - 从HTML页面可以看到,在stl_status.js中调用了函数
afterLoad()
,它间接执行了get_Status()
,它调用了loadDoc('/stl_data.html')
(哦等等,这不是我们还没有看过的文件吗?),它(当然)会调用自己的 HTTP 来下载该文件。
很可能您不需要那样做,但可以直接下载 stl_data.html 并按照其布局进行处理(JS 文件的代码对您来说应该很容易理解)。
我再说一遍:下载文件并不意味着渲染网站。