我正在开发一个 .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 方法不起作用...如果有人可以向我澄清这一点,我将非常感激。