Implementing libcurl
< De
Jump to navigation
Jump to search
This article needs more links to other articles to help integrate it into the encyclopedia. Please help improve this article by adding links that are relevant to the context within the existing text.
January 2024
January 2024
libcurl ist eine freie Bibliothek, die Daten aus dem Internet herunterladen kann. Sie unterstützt jedes vorstellbare Protokoll und ist verfügbar unter einer MIT/X abgeleiteten Lizenz.
Implementierung
Windows
- Die neuste Version von libcurl herunterladen.
- Die
\lib
und\include
Verzeichnisse an eine günstiges Stelle entpacken. - libcurl's VS-Projekt öffnen und in den Releasemodus wechseln.
- Gehe nach libcurl > Properties > C/C++ > Preprocessor > Definitions und füge
CURL_STATICLIB
hinzu. Solange man nicht wirklich LDAP verwenden will, sollteHTTP_ONLY
ebenfalls hinzugefügt werden. - Gehe nach libcurl > Properties > C/C++ > Code Generation > Runtime Library und ändere es nach
Multi-threaded (/MT)
. - Baue libcurl.
- Füge
libcurl.lib
zum Hauptprojekt hinzu. Der einfachste Weg ist, es in den Solution Explorer zu schieben. - Gehe nach Your Project > Properties > C/C++ > Preprocessor > Definitions und füge
CURL_STATICLIB
hinzu, wie es bereits für curl selbst erledigt wurde. - Gehe nach Your Project > Properties > C/C++ > General > Additional Include Directories und füge das vorher entpackte libcurl-
\include
-Verzeichnis hinzu. - Gehe nach Your Project > Linker > Input > Additional Dependencies und füge
ws2_32.lib
hinzu. Wenn LDAP verwendet werden soll, muss auchwldap32.lib
hinzugefügt werden. #include "curl/curl.h"
und beginne mit Programmieren!
Hinweis:Man muss Schritte 8-10 für Release- und Debug-Konfiguration wiederholen.
Linux
[Zu erledigen]
Verwendung
Hier der Code zum ausgeben der Inhalt einer Webseite auf der Konsole:
#include "curl/curl.h"
// Wird aufgerufen, wenn curl Daten vom Server erhält
static size_t rcvData(void *ptr, size_t size, size_t nmemb, void *userdata)
{
Msg((char*)ptr); // bis zu 989 Zeichen gleichzeitig
return size * nmemb;
}
void PrintPage()
{
CURL *curl;
curl = curl_easy_init();
curl_easy_setopt(curl, CURLOPT_URL, "developer.valvesoftware.com");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, rcvData);
curl_easy_perform(curl);
curl_easy_cleanup(curl);
}
ConCommand print_page("print_page", PrintPage);