IdHTTP.Get停止执行

时间:2012-08-25 01:10:14

标签: delphi delphi-2010 bho idhttp

我正在开发一个.dll文件(更具体的是一个浏览器助手对象--BHO)。我需要接收托管在一个TXT文件中的一些设置。要读取这个TXT文件,我正在使用IdHTTP,但是当我进入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个TXT地址,并尝试连接直到找到一些有效的地址。但是在功能的第一行( 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方法不起作用......如果有人能向我澄清这一点,我将非常感激。

0 个答案:

没有答案