Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Indy 9: Was bedeutet diese Exception? (https://www.delphipraxis.net/74947-indy-9-bedeutet-diese-exception.html)

Codehunter 11. Aug 2006 14:21


Indy 9: Was bedeutet diese Exception?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Siehe angehängtem Screenshot. Wird ausgelöst bei einem IdHTTP.Post. Das Ziel ist ein PHP-Script. Das Script selbst funktioniert auf anderen Servern normal. Also was hat es mit dieser Exception auf sich?

EDIT: Es handelt sich um eine Exception des Typs EIdHTTPProtocolException.

Klaus01 11. Aug 2006 14:38

Re: Indy 9: Was bedeutet diese Exception?
 
Mag sein das idHttp den DOCType nicht kennt.
Es hatte schonmal jemand das Problem -Google Groups - Winsocks

Es steht aber leider nicht dort wie es gelöst wurde.
Vielleicht eine kleine Konfigurationsänderung?

Vielleicht antwortet ja noch der Fragensteller: romeo_isaksson (at) hotmail.com

Ich weiß, hilft nicht viel...

Grüße
Klaus

[edit=sakura] [url]-Tags für besseres Layout Mfg, sakura[/edit]

Codehunter 11. Aug 2006 15:15

Re: Indy 9: Was bedeutet diese Exception?
 
Der soll sich doch für den Doctype gar nicht interessieren. Der soll nur den ASCII-Ruscht engegennehmen. Doctypes interessieren doch mehr die Browser, oder?

Klaus01 11. Aug 2006 15:45

Re: Indy 9: Was bedeutet diese Exception?
 
Aber liest idhttp.post nicht zumindest den Header der Seite
zu der etwas hingeschickt werden soll?

Grüße
Klaus

DGL-luke 11. Aug 2006 15:50

Re: Indy 9: Was bedeutet diese Exception?
 
Im Header steht aber kein doctype...

Codehunter 11. Aug 2006 16:33

Re: Indy 9: Was bedeutet diese Exception?
 
EBEN! Der Doctype gehört zum HTML-Head und nicht zum HTTP-Protokoll. Das zugrundeliegende PHP-Script ist von mir und überhaupt nicht fähig, einen Doctype auszugeben.

Deswegen bin ich ja so ratlos. Weil die Exception aber kommt bevor der ResponseString gefüllt ist kann ich nicht mal schauen ob PHP da evtl. eine Fehlermeldung auswirft und der Doctype daher kommt.

EDIT: Also ich habs jetzt soweit eingegrenzt: Der Webserver meldet den Statuscode -1 (oder gar keinen und -1 ist ein Indy-Default) und diese eine Zeile mit dem Doctype. Aber warum ist mir ein Rätsel.

Kennt jemand einen Proxy mit dem ich den übertragenen Datenruscht anschauen kann? Also zwischen meinen Client und den Webserver hängen und alles mitloggen was da so gequasselt wird.

Klaus01 11. Aug 2006 17:06

Re: Indy 9: Was bedeutet diese Exception?
 
Wenn der Client und der Server über Ethernet oder DSL
kommunizieren, sollte Ethereal da eigentlich helfen
den ip Trafic mitzuschneiden. Wenn Du Zugriff auf den Server hast
und der unter Linux läuft, hilft Dir da tcpdump weiter.
Die tcpdump Daten kannst Du dann auch mit Ethereal anschauen.

Grüße
Klaus

Codehunter 11. Aug 2006 17:37

Re: Indy 9: Was bedeutet diese Exception?
 
Ok, danke für den Tip mit Ethereal bzw. Wireshark. Jetzt bin ich schon mal ein Stück weiter. Der Server wirft tatsächlich eine Fehlermeldung (html-Anteil rausgekürzt):

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
400 Bad Request
Your browser sent a request that this server could not understand.

Anscheinend schicke ich einen ungültigen Request. Komischerweise scheint das sämtliche Testserver nicht zu interessieren, da funktioniert es wunderbar. Könnte es eine bestimmte Kombination von Indy-Request-Parametern und Serverkonfigurationen sein (Apache2, PHP5)?

Ich lasse die Indy-Request-Felder weitestgehend auf Default, setze lediglich ContentType := 'multipart/form-data'.

Habt ihr Vorschläge wo ich ansetzen kann mit der Suche?

Chewie 11. Aug 2006 18:33

Re: Indy 9: Was bedeutet diese Exception?
 
Kannst du den Request in einem Browser schicken? Wenn ja, mach das mal, zeichne mit Ethereal auf und vergleiche mit dem von deinem Programm gesendeten Daten. Dann gleichst du deine Angaben (z.B. und vor allem UserAgent) denen des Browsers an und spielst mit den Einstellungen herum, bis es funktioniert. Dann wirst du herausgefunden haben, worans lag.

Codehunter 11. Aug 2006 19:20

Re: Indy 9: Was bedeutet diese Exception?
 
Âlso ich denke es könnte daran liegen, daß Indy immer HTTP 1.0 verwenden will. Ich hab schon ProtocolVersion auf pv1_1 aber der POST-Request geht trotzdem als 1.0 raus. Obs das ist weiß ich im Moment noch nicht. Aber ein "Anfangsverdacht". Nur wie bekomme ich Indy 9 TIdHTTP dazu, das 1.1er Protokoll zu verwenden?


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:07 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz