Implementing libcurl
< De
Jump to navigation
Jump to search
This article needs more links to other pages (since January 2024). You can help improve navigation by adding links to related documentation, such as entities or tools.
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
\libund\includeVerzeichnisse 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_STATICLIBhinzu. Solange man nicht wirklich LDAP verwenden will, sollteHTTP_ONLYebenfalls 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.libzum 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_STATICLIBhinzu, 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.libhinzu. Wenn LDAP verwendet werden soll, muss auchwldap32.libhinzugefügt werden. #include "curl/curl.h"und beginne mit Programmieren!
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);