gpt4 book ai didi

delphi - 如何让 TNMHTTP Get 方法响应重定向

转载 作者:行者123 更新时间:2023-12-03 15:49:21 27 4
gpt4 key购买 nike

我在 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 block 中捕获异常,但这不是问题。

问题是,当 URL 是重定向时执行 NMHTTP1.Get 方法时,该方法不会返回并且程序挂起。尽管我设置了 3000 秒的超时,但情况还是如此。

所以我看到了解决这个问题的三种可能的方法(按照修改程序从最简单到最难的顺序):

  1. 采取一切必要措施让 NMHTTP1.Get 方法做出响应。

  2. 在 NMHTTP1.Get 语句之前进行某种检查,看看该 URL 是否是重定向并获取其重定向到的 URL。

  3. 使用另一种方法使用 Delphi 获取网页。当我写这篇文章时,我使用的是 Delphi 4,没有 Indy。我现在有 Delphi 2009,所以如果没有简单的 #1 或 #2 答案,我愿意使用可以在其中运行的东西(也许是 INDY)。

我很想从能为我工作的人那里得到答案。提前致谢。

最佳答案

我会避免 NetMasters 控制,就这样。

相反,您可以使用 Indy 的 IdHTTP 组件,该组件具有 RedirectMaximum 属性(默认为 15)和 OnRedirect 事件(如果您想跟踪详细信息)。

关于delphi - 如何让 TNMHTTP Get 方法响应重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/257120/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com