从 Delphi 10.3 中的 TWebBrowser OnNavigateError 中提取 StatusCode

问题描述

我正在尝试在 TWebbrowser 的 OnNavigateError 事件中获取 HTTP 响应代码。传递给我的 StatusCode 总是 -2146697211,而它应该是 404。我错过了什么?我使用的是 Delphi 10.3。

解决方法

为什么这是一个单独的错误代码而不是 HTTP 代码?因为它发生在执行 HTTP 之前:查找主机名的 IP 地址失败 - 没有人知道您尝试浏览的主机名具有哪个 IP 地址。这就是 Domain Name System (DNS) 的用途。无法与服务器取得联系与能够获得响应是两码事。 HTTP 404 是响应。但是由于您甚至没有得到响应,因此您无法获得 HTTP 状态代码。


长话短说:找不到主机(而不是“HTTP 404”=找到主机,但不是您要查找的页面)。尝试使用可以实际解析的地址/主机名。