Html Client

Slazer

Mitglied
Hallo,
weiß jemand wie ich unter Windows in C++ nen Html Client programmiere?
er soll nur eine Webseite laden und diese in einem string speichern.
 
Entweder du machst es mit MFC und siehst dir diese Beispiel an: Klick!

Oder du wartest, bis Endurion sich dazu äussert. Der kennt sich nämlich damit besser aus als ich. Würde mich auch interessieren.
Da habe ich einfach meinen Post von gestern kopiert, mit Tippfehlern. :)
 
Uije, eigentlich ist es relativ einfach, ist aber aufwendig. Ich gebe jetzt hier keinen Codeschnipsel, nur, worauf es ankommt.

Du baust eine Socket-Verbindung auf (über Port 80, ist klar). Sende eine HTML-Anfrage (ein GET-Request). Such dir am besten vom W3C-Konsortium (die haben HTML verbrochen) wie so ein Request aufgebaut ist. Es ist einfach nur ein mehrzeiliger Text, die erste Zeile enthält das HTML-Kommando, die restlichen Zeilen sind Parameter. Als Abschluss kommt eine Leerzeile. Das sieht z.Bsp. so aus (kein Anspruch auf Korrektheit):

GET http://www.hurz.de HTTP/1.0
Connection: keep-alive
Parameter: Wert

Als Antwort bekommst du dann einen ebensolchen HTML-Klotz zurück, zuoberst eine Zeile mit dem Antwortcode (wichtig, für Fehler und anderes), eine Liste von Parametern, eine Leerzeile als Abschluss des HTML-"Headers". Je nach Ergebnis kommt dann im Anschluss die eigentliche HTML-Seite. Der Header könnte so aussehen:

HTTP 200 OK
content-length: 1234
Parameter: Wert

Wenn 200 kommt, heisst das, das der Request funktioniert hat. Dann müsste ein content-length-Parameter vorkommen, der dir die Länge der HTML-Seite im Anschluss an den Header mitteilt. Die Länge ist sehr wichtig, da die HTML-Seite normalerweise NICHT 0-terminiert ist und man dann eigentlich nicht weiss, wo die Seite zu Ende ist.

So sieht's aus im Simpelfall, also HTTP unverschlüsselt und kein Proxy. Mit Proxy ändert sich meistens nur der Request, und mit HTTPS ist die K***e richtig am Dampfen. Da muss dann erst ein Handshake mit dem Server gemacht werden, dabei wird die Verschlüsselung festgelegt. Ein Fehler und der Server stellt sich tot; sprich ignoriert die Verbindung.

Keuch. Herr Kachelator, bitte die nächste an mich weitergereichte Anfrage etwas einfacher, sowas in der Richtung "Wie addiere ich zwei Zahlen?".
 
Mir fällt da grade ein, wenn du gerne von IE (3.0, glaub ich) abhängig bist, kannst du auch die WININET library benutzen, die hat alles verbindungstechnische schön gekapselt, aber dann muss auch mind. IE 3.0 installiert sein. Ist heutzutage eigentlich eh klar, aber ich hasse solche Abhängigkeiten, deshalb wollte ich's nochmal erwähnen.
 
Zurück