私は.dllファイルを開発しています(より具体的にはBrowser Helper Object - BHO)。そして、1 つの TXT ファイルでホストされているいくつかの設定を受け取る必要があります。この TXT ファイルを読み取るために IdHTTP を使用していますが、TXT アドレスに .get するとすべてが停止します。以下にコードを貼り付けます。
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;
ご覧のとおり、 TXTsという TStringList を使用しているため、この手順の最初に、TXT を正常に取得したかどうかを確認する関数があります。そこで、この 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 メソッドが機能しません... 誰かが私にこれを明確にすることができれば、私は非常に感謝しています。