Ich habe mir den code für den Downlord einer Datei mit der
Indy Komponente von einem HTTP Server herausgesucht.
Alles schön und gut wen da nicht beim Start des Programms und nach klik auf den Button folgende Medung käme:
---------------------------
Benachrichtigung über Debugger-
Exception
---------------------------
Im Projekt Project1.exe ist eine
Exception der Klasse EIdHTTPProtocolException aufgetreten. Meldung: 'HTTP/1.1 400 Bad Request'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK Hilfe
---------------------------
Das programm stopt hier:
Delphi-Quellcode:
function TIdHTTPProtocol.ProcessResponse: TIdHTTPWhatsNext;
procedure RaiseException;
var
LRespStream: TStringStream;
LTempStream: TStream;
LTemp: Integer;
begin
LTemp := FHTTP.ReadTimeout;
FHTTP.ReadTimeout := 2000; // Lets wait 2 seconds for any kind of content
LRespStream := TStringStream.Create('');
LTempStream := Response.ContentStream;
Response.ContentStream := LRespStream;
try
FHTTP.ReadResult(Response);
raise EIdHTTPProtocolException.CreateError(Response.ResponseCode, // <-- hier stopt es!
FHTTP.ResponseText, LRespStream.DataString);
finally
Response.ContentStream := LTempStream;
LRespStream.Free;
FHTTP.ReadTimeout := LTemp;
end;
end;
Danach läst sich das Programm nur noch mit Strg + F9 beenden.
Die Datei ist zwar da aber hat 0 KB und drin stehen tut auch nischt
!
achja hier der Code von dem Programm:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var stream:TFileStream;
begin
stream:=TFilestream.create('C:\toll.txt',fmcreate );
form1.idhttp1.host:='redplug.re.funpic.de';
form1.idhttp1.connect;
form1.idhttp1.Get('dlw/toll.txt',stream);
form1.idhttp1.disconnect;
stream.free
end;
Was ist da schon wieder Kaputt?
Benutze
Indy 9.0.19