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