C++ पर SMS भेजना: API लाइब्रेरी LibCurl और REST अनुरोध

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

C++ पर SMS भेजना: LibCurl लाइब्रेरी के साथ API उपयोग के लिए पूर्ण मार्गदर्शिका



SMS संदेश भेजना आधुनिक अनुप्रयोगों के प्रमुख कार्यों में से एक है: दो-कारक प्रमाणीकरण से लेकर ऑर्डर स्थिति सूचनाओं तक। C++ पारिस्थितिकी तंत्र में SMS गेटवे के साथ काम करने के लिए कोई अंतर्निहित साधन नहीं हैं, हालांकि, सार्वभौमिक लाइब्रेरी libcurl और मानक HTTP अनुरोधों की सहायता से, किसी भी REST API SMS प्रदाता को आसानी से एकीकृत किया जा सकता है। इस लेख में, हम चर्चा करेंगे कि LibCurl लाइब्रेरी का उपयोग करके C++ पर SMS भेजने के लिए एक विश्वसनीय फ़ंक्शन कैसे लिखें, और लोकप्रिय सेवाओं (Twilio, SMS Aero, Bytehand) के लिए विशिष्ट उदाहरण देखेंगे।



LibCurl क्यों?

LibCurl विभिन्न प्रोटोकॉल (HTTP, HTTPS, FTP और अन्य) पर डेटा स्थानांतरण के लिए एक क्रॉस-प्लेटफ़ॉर्म लाइब्रेरी है। यह समर्थन करता है:

  • GET, POST, PUT, DELETE अनुरोध
  • SSL/TLS (HTTPS)
  • अनुरोध हेडर और बॉडी के साथ कार्य
  • सर्वर प्रतिक्रियाओं का प्रसंस्करण

SMS भेजने के लिए, चयनित प्रदाता के API पर POST अनुरोध करना पर्याप्त है, आवश्यक पैरामीटर (फ़ोन नंबर, टेक्स्ट, API कुंजी) पास करके। LibCurl सॉकेट और एन्क्रिप्शन के साथ सभी निम्न-स्तरीय कार्य करता है।



लाइब्रेरी स्थापित करना

अधिकांश Linux वितरणों में, LibCurl को पैकेज मैनेजर के माध्यम से स्थापित किया जा सकता है:

sudo apt-get install libcurl4-openssl-dev  # Ubuntu/Debiansudo yum install libcurl-devel             # CentOS/RHEL

Windows के लिए, आधिकारिक साइट से पूर्व-निर्मित DLL डाउनलोड किए जा सकते हैं या vcpkg का उपयोग किया जा सकता है:

vcpkg install curl

कोड में कनेक्शन:

#include <curl/curl.h>#include <string>#include <json/json.h>  // यदि JSON (nlohmann/json) का उपयोग कर रहे हैं


SMS फ़ंक्शन की मूल संरचना

हम एक सार्वभौमिक फ़ंक्शन sendSms बनाएंगे, जो API URL, कुंजी, प्राप्तकर्ता का नंबर और संदेश टेक्स्ट लेता है। JSON के साथ काम करने के लिए, nlohmann/json लाइब्रेरी (हेडर-ओनली, बिल्ड की आवश्यकता नहीं) का उपयोग करना सुविधाजनक है।



#include <iostream>#include <string>#include <curl/curl.h>#include <nlohmann/json.hpp>

using json = nlohmann::json;

// सर्वर प्रतिक्रिया रिकॉर्ड करने के लिए Callbackstatic size_t WriteCallback(void *contents, size_t size, size_t nmemb, void *userp) { ((std::string*)userp)->append((char*)contents, size * nmemb); return size * nmemb;}

bool sendSms(const std::string& url, const std::string& apiKey, const std::string& phone, const std::string& message) { CURL *curl; CURLcode res; std::string readBuffer;

curl_global_init(CURL_GLOBAL_DEFAULT); curl = curl_easy_init();

if(!curl) return false;

// JSON अनुरोध बॉडी बनाएं json payload; payload["phone"] = phone; payload["text"] = message; payload["api_key"] = apiKey;

std::string jsonStr = payload.dump();

// HTTP अनुरोध सेटअप struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "Content-Type: application/json"); headers = curl_slist_append(headers, "Accept: application/json");

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

// अनुरोध निष्पादित करें res = curl_easy_perform(curl);

// सफाई curl_easy_cleanup(curl); curl_global_cleanup();

if(res != CURLE_OK) { std::cerr << "कर्ल त्रुटि: " << curl_easy_strerror(res) << std::endl; return false; }

// प्रतिक्रिया पार्स करें (Twilio के लिए उदाहरण) try { json response = json::parse(readBuffer); if(response.co

अनुशंसाएँ