【发布时间】:2026-02-01 13:00:01
【问题描述】:
我在 Delphi 中使用 TNMHTTP 从网页中检索代码。代码比较简单:
NMHTTP1 := TNMHTTP.Create(Self);
NMHTTP1.InputFileMode := FALSE;
NMHTTP1.OutputFileMode := FALSE;
NMHTTP1.ReportLevel := Status_Basic;
NMHTTP1.TimeOut := 3000;
URL := 'http://www....';
NMHTTP1.Get(URL);
S := NMHTTP1.Body;
我在 try/except 块中捕获异常,但这不是问题。
问题是在 URL 是重定向时执行 NMHTTP1.Get 方法时,该方法不返回并且程序挂起。尽管我已经设置了 3000 秒的超时时间。
所以我看到了解决这个问题的三种可能方法(按照我修改程序的最简单到最难的顺序):
尽一切可能让 NMHTTP1.Get 方法响应。
在 NMHTTP1.Get 语句之前进行某种检查以查看 URL 是否为重定向并获取它要重定向到的 URL。
使用另一种方法通过 Delphi 获取网页。当我写这篇文章时,我使用的是 Delphi 4 并且没有 Indy。我现在有 Delphi 2009,所以如果没有简单的 #1 或 #2 答案,我愿意使用在其中工作的东西(可能是 INDY)。
我很想从对我有用的人那里得到答案。提前致谢。
【问题讨论】:
标签: delphi