HTTP/1.1 500 Internal Server Error heißt eigentlich, dass die Gegenseite schon irgendwie antwortet, aber halt dabei innerhalb der Gegenseite ein Fehler auftritt.
Vermutlich kann dieser Fehler erst gemeldet werden, wenn die Verbindung bereits erfolgreich hergestellt wurde.
Hast Du auf der VM 'nen Browser?
Dann kannst Du die PDF (höchstwahrscheinlich) mit dem anzeigen lassen. Einfach mal den Browser öffnen und die PDF aus dem Explorer in den Browser ziehen oder halt über das Menü Datei / Datei öffnen auswählen.
Geht das nicht, dann die Datei mal mit Notepad öffnen. Solange Du sie nicht mit Notepad speicherst, sollte das gehen. PDF-Dateien beginnen in der Regel mit der Zeichenfolge %PDF-1.4.
Wenn in der PDF dort was anderes steht, teile uns das bitte mit (sofern es Infos sind, die Du veröffentlichen kannst / darfst).
Die Funktion THTTPFileDownload.DownloadFile bitte ändern:
Delphi-Quellcode:
function THTTPFileDownload.DownloadFile(
const aFileUrl:
string;
const aDestinationFile:
string): Boolean;
var
LDestStream: TFileStream;
aPath:
string;
s :
String;
begin
try
ResetVars;
aPath := ExtractFilePath(aDestinationFile);
if aPath <> '
'
then
ForceDirectories(aPath);
LDestStream := TFileStream.Create(aDestinationFile, fmCreate);
try
try
Get(aFileUrl, LDestStream);
Result := True;
except
on e :
Exception do begin
s := '
ResponseCode: ' + IntToStr(ResponseCode) + #13
+ '
ResponseText: ' + ResponseText + #13
+ '
Server: ' + Response.Server + #13
+ '
Location: ' + Response.Location + #13
+ '
AcceptPatch: ' + Response.AcceptPatch + #13
+ '
AcceptRanges: ' + Response.AcceptRanges + #13
+ '
CharSet: ' + Response.CharSet + #13
+ '
CacheControl: ' + Response.CacheControl + #13
+ '
Date: ' + DateTimeToStr(Response.Date) + #13
+ '
Expires: ' + DateTimeToStr(Response.Expires) + #13
+ '
LastModified: ' + DateTimeToStr(Response.LastModified) + #13
+ '
TransferEncoding: ' + Response.TransferEncoding + #13
;
case Response.ResponseVersion
of
pv1_0 : s := s + '
ResponseVersion: 1.0' + #13;
pv1_1 : s := s + '
ResponseVersion: 1.1' + #13;
else
s := s + '
ResponseVersion: unbekannt' + #13;
end;
s := s + #13#13 + e.
Message;
MessageDlg(s,mtError,[mbOk],0);
end;
finally
FreeAndNil(LDestStream);
end;
except
on e :
Exception do begin
Result := False;
MessageDLG(e.
Message,mtError,[mbOk],0);
end;
end;
end;
Bitte informiere uns über die daraus resultierende Fehlermeldung. (Sofern da Angaben drinne sind, die Du nicht zeigen darfst, anonymisiere sie bitte so, dass der ursprüngliche Sinn der Aussage erhalten bleibt.)
Da das Ganze hier nur "hingedaddelt" ist, kann ich Schreib-/Syntaxfehler nicht ausschließen.