Einzelnen Beitrag anzeigen

Delphi.Narium

Registriert seit: 27. Nov 2017
2.415 Beiträge
 
Delphi 7 Professional
 
#86

AW: Datei aus dem Internet herunterladen - geht nicht mehr!

  Alt 4. Jan 2019, 11:47
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.
  Mit Zitat antworten Zitat