HTML Request

hudo

Mitglied
Hallo,

wie kann man mit C++ eine Seite aus dem Internet herunterladen und auswerten ?
Gibts da eventuell schon entsprechende libs dafuer ?

Bin fuer jeden Hinweis dankbar.
 
Du musst mit dem Port verbinden und dann dem HTTP-Protokoll entsprechend Deine Anfragen stellen.
Falls Du ein wenig von PHP versteht koennte ein Blick in dieses Tutorial nicht schaden, denn dort wird das ganze mit PHP implementiert. Du muesstest das dann im Grunde nur noch in C umsetzen.
Ansonsten kann ich Dir nur den Blick in RFC2616 empfehlen.
 
Hallo Dennis,

ich fragte ausdruecklich nach einer Loesung in C/C++
weil mit perl und perltk hab ich das schon implementiert (mit Hilfe von LWP ist das ein Kinderspiel).

Hallo MCoder,
ich moechte mein bestehendes perltk Programm mit wxwidgets und C++ nachbilden (nur zur Uebung, nicht zur Strafe), dabei spielt meines Wissens die Plattform/Betriebssytem eine untergeordnete Rolle.
Ich wuerde MinGW mit gcc unter Windows XP waehlen.

Was mir aber wirklich fehlt, ist irgendeine Anleitung/Doku/Hinweise wie man die Web-Zugriffe mit c++ implementiert und dann die Seiten auswertet. Wie gesagt, mit dem perl-Modul LWP ist das ein Kinderspiel, aber mit c.....
 
In dem PHP-Script wird ganz klar beschrieben wie die Kommunikation in HTTP auszusehen hat. Dies in C zu implementieren wird nicht das Problem sein wenn Du erst einmal die Verbindung aufgebaut hast.
Mit HTTP wirst Du Dich so oder so auseinander setzen muessen, daher hab ich auf das Tutorial und das entsprechende RFC verwiesen.
Gerade weil Du bei C nicht solche schicken Sachen zur Verfuegung hast wie in Perl musst Du Dich halt mit dem Protokoll selbst befassen um dieses nutzen zu koennen.
Und es ist besser etwas in einer anderen Sprache vorliegen zu haben als garnichts, oder?
 
Hallo hudo,

grundsätzlich geht das Ganze in Richtung Socket-Programmierung, und die jeweilige Implementation der Sockets bzw. die dafür bereitgestellten Schnittstellen sind (zumindest bei Benutzung von C++) plattformspezifisch.

Bei Windows gibt es mit der API-Funktion URLDownloadToFile() eine recht einfache Möglichkeit, Daten aus dem Internet herunterzuladen.
Die Auswertung bedeutet dann das Parsen der heruntergeladenen Datei entsprechend deinen Vorgaben.

Gruß
MCoder
 
Hallo Dennis,
da hast Du recht, das es besser ist "wenigstens in einer anderen Sprache etwas vorliegen zu haben" als garnichts zu haben.
Nun, weil ich in c nicht so uptodate bin, fragte ich ja, ob es eventuell "includes" aehnlich dem lwp gibt. Man muss ja nicht unbedingt das Rad neu erfinden.
Wenn aber nichts in der Richtung gibt, muss ich wohl mit dem RFC vorlieb nehmen und da ist Dein tutorial bestimmt auch sehr hilfreich.:)

Trotzdem waere es nett, wenn jemand schon was aehnliches mit c gemacht hat, dass er hier seine Erfahrungen mitteilt.


Gruss
 
Wie MCoder schon angedeutet hat unterscheiden sich die Socket-Implementationen der Betriebssysteme durchaus. Ich weiss nicht in wie weit es Funktionsunterschiede gibt, aber es muessen auf jeden Fall unterschiedliche Header-Files includet werden.
Unter Linux waere das socket.h oder sockets.h (bin nicht ganz sicher) und unter Windows duerfte das winsock.h oder winsock32.h (auch da bin ich nicht ganz sicher) sein.
Zum Thema mit Sockets verbinden duerfte sich hier ueber die Forensuche auch so einiges finden lassen nehme ich an.
 
Zurück