SMS-Versand in C++: API-Bibliotheken libcurl und cpprestsdk

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

SMS-Versand in C++: API-Bibliotheken libcurl und cpprestsdk



In der modernen C++-Entwicklung besteht häufig die Notwendigkeit der Integration mit externen Diensten, einschließlich des Versendens von SMS-Nachrichten. Obwohl die Standardbibliothek von C++ keine integrierten Mittel für die Arbeit mit HTTP-Anfragen bereitstellt, gibt es leistungsstarke Drittanbieter-Bibliotheken, die diese Aufgabe lösen. In diesem Artikel betrachten wir zwei beliebte Bibliotheken — libcurl (CURL) und cpprestsdk (Casablanca) — und zeigen, wie man mit ihrer Hilfe SMS über die API gängiger SMS-Anbieter versendet.



Warum wird eine Bibliothek zum SMS-Versand in C++ benötigt?



Das Versenden von SMS über C++ ist eine typische Aufgabe für Serveranwendungen, Überwachungssysteme, Benachrichtigungen oder Automatisierung. Die direkte Arbeit mit Sockets und dem HTTP-Protokoll in C++ ist komplex und fehleranfällig. Bibliotheken wie libcurl und cpprestsdk abstrahieren diese Komplexität und bieten eine benutzerfreundliche Schnittstelle zum Ausführen von HTTP-Anfragen (GET, POST, PUT) und zur Verarbeitung von JSON/XML-Antworten.



Wir werden die API eines SMS-Anbieters (z. B. Twilio, SMS.ru oder eines anderen, der eine REST-API unterstützt) verwenden. Ersetzen Sie in den folgenden Beispielen YOUR_API_KEY, YOUR_SENDER und YOUR_PHONE durch Ihre tatsächlichen Daten.



Bibliothek 1: libcurl (CURL)



libcurl ist eine bewährte Bibliothek für die Arbeit mit URLs, die zahlreiche Protokolle (HTTP, HTTPS, FTP usw.) unterstützt. Sie ist in C geschrieben, hat aber hervorragende C++-Bindings. Für die Verwendung in einem C++-Projekt genügt es, die Header-Datei curl/curl.h einzubinden und mit libcurl zu linken.



Installation von libcurl

  • Linux (Ubuntu/Debian): sudo apt-get install libcurl4-openssl-dev
  • Windows: Laden Sie vorkompilierte Binärdateien von der offiziellen Website herunter oder verwenden Sie vcpkg: vcpkg install curl
  • macOS: brew install curl


Beispiel für den SMS-Versand mit libcurl (C++-Syntax)

In diesem Beispiel verwenden wir eine einfache POST-Anfrage mit Daten im JSON-Format. Die Bibliothek libcurl verarbeitet die HTTP-Header und den Anfragetext.



#include <iostream>#include <string>#include <curl/curl.h>

// Callback-Funktion zum Aufzeichnen der Serverantwortsize_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* output) { size_t totalSize = size * nmemb; output->append((char*)contents, totalSize); return totalSize;}

bool sendSMS_via_libcurl(const std::string& phone, const std::string& message) { CURL* curl = curl_easy_init(); if (!curl) return false;

std::string response; std::string url = "https://api.sms-provider.com/v1/send"; // Ersetzen Sie durch die URL Ihres Anbieters std::string jsonData = R"({ "api_key": "YOUR_API_KEY", "sender": "YOUR_SENDER", "phone": ")" + phone + R"(", "text": ")" + message + R"(" })";

struct curl_slist* headers = nullptr; headers = curl_slist_append(headers, "Content-Type: application/json");

curl_easy_setopt(curl, CURLOPT_URL, url.c_str()); curl_easy_setopt(curl, CURLOPT_POSTFIELDS, jsonData.c_str()); curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback); curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);

CURLcode res = curl_easy_perform(curl); curl_slist_free_all(headers); curl_easy_cleanup(curl);

if (res != CURLE_OK) { std::cerr << "Curl-Fehler: " << curl_easy_strerror(res) << std::endl; return false; }

std::cout << "Serverantwort: " << response << std::endl; return true;}

int main() { curl_global_init(CURL_GLOBAL_DEF

Empfehlungen