0

我正在开发一个 .dll 文件(更具体地说是浏览器帮助对象 - BHO)。我需要接收一些托管在一个 TXT 文件中的设置。要读取这个 TXT 文件,我使用的是 IdHTTP,但是当我 .get 进入 TXT 地址时,它只会停止一切。我将粘贴下面的代码:

procedure TMyClass.ReadTXT;
  function LoadTxt(HTTP: TidHTTP; Body: TStringList; URLTxt: string): boolean;
    begin
      try
        Body.Text:= HTTP.Get(URLTxt);
        Result := true;
      except
        Result := false;
      end;
    end;
var
  HTTP: TidHTTP;
  Body: TStringList;
  ValidTXT: boolean;
  Line: string;
  i, aux: integer;
begin
  HTTP := TIDHttp.Create(Nil);
  try
    HTTP.ConnectTimeout:= 5000;
    HTTP.Request.UserAgent:= 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1';
    Body := TStringList.Create;
    try
      ValidTXT := false;
      i := 0;
      while (ValidTXT = false) and (i < TXTs.Count) do
        begin
        if (LoadTXT(HTTP, Body, TXTs.Strings[i]) = true) and (Body.Count > 0) then
          begin
...
end;

所以在这个过程的开始我有一个函数,看看我是否成功地得到了一些 TXT,因为你可以看到我正在使用一个名为TXTs的 TStringList 。所以,我在这个 TStringList 中添加了 3 个 TXTs 地址,并尝试连接直到找到一些有效地址。但是在函数的第一行(Body.Text:= HTTP.Get(URLTxt);)即使有一个有效的 TXT 地址,它也会停止......有人知道发生了什么吗?


我弄清楚发生了什么。但不知道为什么......当我设置时:

HTTP.ConnectTimeout:= 10000;
HTTP.Request.UserAgent:= 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1';

.Get 方法不起作用...如果有人可以向我澄清这一点,我将非常感激。

4

0 回答 0