Einzelnen Beitrag anzeigen

Shark99

Registriert seit: 16. Mai 2007
403 Beiträge
 
#1

Kleine Indy 10 Http Client Warnung bezüglich UserAgent

  Alt 31. Jan 2013, 05:28
Ich habe eben mehrere Stunden nach einem Crash in meiner App gesucht.
Dabei ist der Http Client bei einer bestimmten URI in einer Endlosschleife steckengeblieben.

Das Problem betrifft nur die Version aus dem SVN, also Indy 10 Build 4915.

Indy 10 Build 3962 in einer anderen VM hat das Problem nicht, verhält sich aber merkwürdig.

Hier ist der Code:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var HTTPCLIENT1: TIdHTTP;
begin
  try
   try
     HTTPCLIENT1 := TIdHTTP.Create(nil);
     HTTPCLIENT1.Request.UserAgent := 'Mozilla/3.0 (compatible; Test)';
     Memo1.Text := HTTPCLIENT1.Get(('http://www.grecehotels.com/favicon.ico'));
   except
     On e: Exception do
          Memo1.Text := 'Exception: '+e.Message;
   end;
  finally
     HTTPCLIENT1.Free;
  end;
end;
Indy 10 Build 4915 hängt wie gesagt in einer Endlosschleife (was ganz Böse in einem Thread sein kann, weil der nicht mehr ansprechbar ist).

Eine Änderung des Code auf den Default User Agent:
HTTPCLIENT1.Request.UserAgent := 'Mozilla/3.0 (compatible; Indy Library)'; behebt das Problem - es gibt ein HTTP/1.1 403 Forbidden zurück.

Indy 10 Build 3962 verhält sich auch etwas merkwürdig.
HTTPCLIENT1.Request.UserAgent := 'Mozilla/3.0 (compatible; Indy Library)'; ergibt ein HTTP/1.1 403 Forbidden,

wohingegen

HTTPCLIENT1.Request.UserAgent := 'Mozilla/3.0 (compatible; Test)'; ein HTTP/1.1 404 Not Found liefert, was zwar nicht korrekt, aber allemal besser
als eine Endlosschleife ist!
  Mit Zitat antworten Zitat