[英]Extracting StatusCode from TWebBrowser OnNavigateError in Delphi 10.3
我試圖在 TWebBrowser 的 OnNavigateError 事件中獲取 HTTP 響應代碼。 傳遞給我的 StatusCode 始終是 -2146697211,而它應該是 404。我錯過了什么? 我正在使用 Delphi 10.3。
TWebBrowser
使用 Microsoft 的 Internet Explorer,因此可以在網上找到有關NavigateError
事件的信息。StatusCode
參數的解釋鏈接到“NavigateError 事件狀態代碼” - 您可以看到典型的 3 位 HTTP 狀態代碼,還有其他狀態代碼。 -2146697211
的十進制值是十六進制的$800C0005
- 兩者都匹配INET_E_RESOURCE_NOT_FOUND
常量,該常量再次鏈接到另一個頁面: 為什么這是一個單獨的錯誤代碼而不是 HTTP 錯誤代碼? 因為它發生在 HTTP 執行之前:查找 IP 地址到主機名失敗 - 沒有人知道您嘗試瀏覽的主機名具有哪個 IP 地址。 這就是域名系統 (DNS)的用途。 無法與服務器取得聯系與能夠並獲得響應是不同的事情。 HTTP 404
是一個響應。 但是由於您甚至沒有得到響應,因此您無法獲得 HTTP 狀態碼。
長話短說:找不到主機(而不是“HTTP 404”=找到主機,但不是您要查找的頁面)。 嘗試使用可以實際解析的地址/主機名。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.