0

私は.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 メソッドが機能しません... 誰かが私にこれを明確にすることができれば、私は非常に感謝しています。

4

0 に答える 0