Autor Beitrag
Geri
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 78

XP
RAD Studio XE pro
BeitragVerfasst: Sa 03.01.09 17:33 
Hallo zusammen

Ich möchte mit Hilfe von INDY von einem Webserver eine Textdatei downloaden. Das funktioniert. Je nach Webserver erhalte ich aber eine Fehlermeldung 406, not acceptable. Mit dem Internet-Explorer erhalte ich jedoch keine Fehlermeldung.

Ich vermute es liegt an einer falschen Parametrrieung der Komponente TidHTTP. Habt ihr vielleicht eine Idee "an welche Rädchen ich hier drehen muss bzw. zusätzlich was angeben muss"?

Hier der Code:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure TForm1.Button1Click(Sender: TObject);

var HTTP: TIdHTTP; httpcode : string;  
begin  
  HTTP := TIdHTTP.Create;
  try
    Http.Request.Accept := 'text/html/,txt,*/*';
    Memo1.Text := HTTP.Get('http://www.google.at/index.html');
  finally
    HTTP.Free;  
  end;  
end;


Vielen Dank für Eure Hilfe im Voraus

Geri
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19313
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 03.01.09 17:45 
Der Fehler bedeutet, dass die von dir angegebenen Möglichkeiten, was du als Client an Datentypen vom Server akzeptieren kannst, nicht mit der übereinstimmt, die der Server sendet.
Und deshalb teilt dir diese Fehlermeldung mit, dass die zurückgesendeten Daten von dir als nicht akzeptierbar angegeben wurden.

Definiere einfach nicht das Accept, und dann kommt die Fehlermeldung auch nicht. ;-)

// EDIT:
Oder entferne das / am Ende von text/html, ich vermute das löst den Fehler aus, denn den Typ "text/html/" gibt es nicht, nur "text/html", wie es auch im Header zurückgegeben wird.
Geri Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 78

XP
RAD Studio XE pro
BeitragVerfasst: Sa 03.01.09 17:53 
Hallo Sebastian

Vielen Dank für Deine Hilfe. Ich habe beide Varianten getestet, jedoch immer noch das gleiche Problem :(

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm1.Button1Click(Sender: TObject);
 var HTTP: TIdHTTP; httpcode : string;
begin
  HTTP := TIdHTTP.Create;
  try
//    Http.Request.Accept := 'text/html,txt,*/*';
    Memo1.Text := HTTP.Get('http://www.burger-web.com/Updates.txt');
  finally
    HTTP.Free;
  end;
end;

Beste Grüsse

Geri
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19313
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 03.01.09 18:06 
Dieser Server erwartet einen angegebenen UserAgent, also welcher Browser zugreift.
ausblenden Delphi-Quelltext
1:
2:
    Http.Request.UserAgent := 'My own';
    Memo1.Text := HTTP.Get('http://www.burger-web.com/Updates.txt');
Du kannst auch so tun als ob du der FF wärst o.ä., aber der Server akzeptiert auch eine solche Fantasieangabe. ;-)
Geri Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 78

XP
RAD Studio XE pro
BeitragVerfasst: Sa 03.01.09 18:14 
Du bist genial :idea:. Super, vielen Dank für deine kompetente und rasche Hilfe!!! :beer: