Entwickler-Ecke
Internet / Netzwerk - Fehler 406 bei Anfrage auf Webserver mit Indy
Geri - Sa 03.01.09 17:33
Titel: Fehler 406 bei Anfrage auf Webserver mit Indy
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:
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 - 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 - 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 :(
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 Memo1.Text := HTTP.Get('http://www.burger-web.com/Updates.txt'); finally HTTP.Free; end; end; |
Beste Grüsse
Geri
jaenicke - Sa 03.01.09 18:06
Dieser Server erwartet einen angegebenen UserAgent, also welcher Browser zugreift.
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 - Sa 03.01.09 18:14
Du bist genial :idea:. Super, vielen Dank für deine kompetente und rasche Hilfe!!! :beer:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!