Probleme mit IndyHTTP, usw
-
Moinsen zusammen,
ich schreibe im Moment eine kleine Applikation, welche mit HTTP umgehen soll. Im Moment bin ich allerdings noch recht unentschlossen, welche Komponente ich nehmen soll: Indys HTTP oder eher die Variante von Fastnet?
Ich habe beide Koponenten mit kleinen Beispielprogrammen einmal verglichen und dabei ist mir folgendes Aufgefallen:
Wenn ich mit HTTP von Fastnet den Header auslese bekomme ich als Header EINEN String der ungefähr so aussieht:
HTTP/1.1 200 OK
Date: Sun, 09 Mar 2003 12:32:36 GMT
Server: Apache/1.3.26 (Unix) mod_script
Vary: Host
Last-Modified: Sat, 08 Mar 2003 10:27:12 GMT
ETag: "ef3862-1a36-3e69c580"
Accept-Ranges: bytes
Content-Length: 6710
Connection: close
Content-Type: text/htmlMit Indys HTTP ist es nicht ganz so einfach, da muss man aus der Response erstmal die passenden Elemente heraussuchen
deswegen stellt mein BSP-Programm erstmal alle Elemente dar:
Accept: text/html, /
AcceptCharSet:
AcceptEncoding:
AcceptLanguage:
Connection:
ContentEncoding :
ContentLanguage:
ContentRangeEnd:
ContentRangeStart:
ContentType: text/html
ContentVersion:
Date : 09.03.2003 13:38:41
Expires: 01:00:00
From:
LastModified: 08.03.2003 11:27:12
Location:
Password:
ProxyAuthenticate:
ProxyPassword:
ProxyPort:
ProxyServer:
ProxyUsername:
Referer:
Server: Apache/1.3.26 (Unix) mod_script
UserAgent: Mozilla/3.0 (compatible; Indy Library)
Username:
WWWAuthenticate:Wie man sieht gibt es hier einige Informationen scheinbar nicht, wie zum Beispiel der ETag und die Content-Länge.
Meine Fragen währen nun:
- welche Komponente ist die Bessere?
- wie Komme ich bei Indy an den Empfangenen Header
- welche Vor-/Nachteile haben die beiden Komponenten?Danke schonmal im Vorraus
Beechen
-
Moinsen nochmal,
ich muss meine Frage nochmal umdefinieren *g*:
Wenn ich mittels Indy HTTP->Head() mache, kann ich ja anschließend aus HTTP->Response->... die Antowort auslesen.
Ich habe nun mal einen PacketSniffer laufen lassen uns sehe, das der Header wie oben beschrieben den Weg zu mir findet, doch leider sehe ich keine Möglichkeit diesen HTTP-Header auszugeben
HTTP->Response->... liefert nicht die gewünschten Informationen, die da währen:
HTTP/1.1 200 OK
Date: Sun, 09 Mar 2003 12:32:36 GMT
Server: Apache/1.3.26 (Unix) mod_script
Vary: Host
Last-Modified: Sat, 08 Mar 2003 10:27:12 GMT
ETag: "ef3862-1a36-3e69c580"
Accept-Ranges: bytes
Content-Length: 6710
Connection: close
Content-Type: text/htmlweis jemand, wie ich an eben diesen Block herankomme (mit Indy)?
Danke Nochmal
Beechen
-
:((
hat bisher keiner von euch mit Indys HTTP gearbeitet? Oder sollte ich meine Frage noch etwas verbessern? Ich versuch es noch einmal:
Ich schicke:
HTTP->Head(meineurl.de);
und möchte den (HTTP)Header bekommen. Das einzige was ich bereits gefunden habe, ist, dass ich anschließend per
HTTP->Response->...
Ein paar Infos über den empfangenen Header ergattern kann -- aber leider eben nicht alle:
Der Header der erwiesenermaßen (durch PacketSniffer) ankommt sieht so aus:
HTTP->Response->... liefert nicht die gewünschten Informationen, die da währen:
HTTP/1.1 200 OK
Date: Sun, 09 Mar 2003 12:32:36 GMT
Server: Apache/1.3.26 (Unix) mod_script
Vary: Host
Last-Modified: Sat, 08 Mar 2003 10:27:12 GMT
ETag: "ef3862-1a36-3e69c580"
Accept-Ranges: bytes
Content-Length: 6710
Connection: close
Content-Type: text/htmlaber durch Indy komme ich nicht an diese Infos heran!(?)
Zum beispiel bleibt
HTTP->Response->ContentLength
bei Indy leer, nachdem empfangen wurde, aber mein PacketSniffer beweist, das diese Information an meinen Rechner gegangen ist.
Ebenso finde ich beim besten Willen nicht wie ich an dieses ETag heran komme
Hat jemand einen Tipp, was ich falsch mache?
Danke und Gute Nacht!
Beechen