C++ में libcurl लाइब्रेरी से SMS भेजना
आधुनिक डेवलपमेंट में अक्सर बाहरी सेवाओं से SMS भेजने की आवश्यकता होती है। C++ में इस कार्य को libcurl लाइब्रेरी से आसानी से हल किया जा सकता है — यह HTTP/HTTPS प्रोटोकॉल के लिए एक शक्तिशाली टूल है। libcurl REST API कॉल करने के लिए एक सरल और लचीला इंटरफ़ेस प्रदान करता है, जिसमें SMS प्रदाताओं के माध्यम से संदेश भेजना शामिल है।
libcurl क्या है?
libcurl एक क्रॉस-प्लेटफ़ॉर्म लाइब्रेरी है जो HTTP, HTTPS, FTP, SMTP और अन्य प्रोटोकॉल पर डेटा ट्रांसफर करती है। यह अपनी स्थिरता, प्रदर्शन और विस्तृत दस्तावेज़ीकरण के कारण C++ प्रोजेक्ट्स में व्यापक रूप से उपयोग की जाती है। SMS भेजने के लिए हमें JSON या URL-encoded डेटा के साथ HTTP POST अनुरोधों की आवश्यकता होगी।
libcurl इंस्टॉल करना
अधिकांश Linux डिस्ट्रीब्यूशन में libcurl को पैकेज मैनेजर से इंस्टॉल किया जा सकता है:
sudo apt-get install libcurl4-openssl-dev # Ubuntu/Debian
sudo yum install libcurl-devel # CentOS/RHEL
Windows के लिए vcpkg का उपयोग करें या curl.se की आधिकारिक वेबसाइट से बिल्ड डाउनलोड करें।
बेसिक उदाहरण: HTTP POST से SMS भेजना
नीचे हम एक लोकप्रिय SMS सेवा (जैसे Twilio, Nexmo या भारतीय प्रदाता) के API का उपयोग करके SMS भेजने का उदाहरण देखेंगे। इसमें हम JSON डेटा के साथ POST अनुरोध भेजते हैं, जिसमें प्राप्तकर्ता का नंबर और संदेश का टेक्स्ट होता है।
#include <iostream>
#include <string>
#include <curl/curl.h>
// सर्वर रिस्पॉन्स को स्टोर करने के लिए कॉलबैक फंक्शन
static 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& apiKey, const std::string& phone, const std::string& message) {
CURL* curl;
CURLcode res;
std::string response;
curl_global_init(CURL_GLOBAL_DEFAULT);
curl = curl_easy_init();
if(curl) {
// API एंडपॉइंट URL (अपने प्रदाता के अनुसार बदलें)
curl_easy_setopt(curl, CURLOPT_URL, "https://api.smsprovider.com/v1/send");
// हेडर: कंटेंट टाइप और ऑथराइज़ेशन
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Content-Type: application/json");
std::string authHeader = "Authorization: Bearer " + apiKey;
headers = curl_slist_append(headers, authHeader.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
// JSON बॉडी तैयार करें
std::string jsonData = "{";
jsonData += "\"phone\":\"" + phone + "\",";
jsonData += "\"message\":\"" + message + "\"";
jsonData += "}";
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, jsonData.c_str());
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
// अनुरोध निष्पादित करें
res = curl_easy_perform(curl);
// परिणाम जांचें
if(res != CURLE_OK) {
std::cerr << "curl त्रुटि: " << curl_easy_strerror(res) << std::endl;
curl_easy_cleanup(curl);
curl_global_cleanup();
return false;
}
// HTTP रिस्पॉन्स कोड प्राप्त करें
long httpCode;
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &httpCode);
curl_easy_cleanup(curl);
curl_global_cleanup();
if(httpCode == 200 || httpCode == 201) {
std::cout << "SMS सफलतापूर्वक भेजा गया। रिस्पॉन्स: " << response << std::endl;
return true;
} else {
std::cerr << "सर्वर त्रुटि। HTTP " << httpCode << ": " << response << std::endl;
return false;
}
}
curl_global_cleanup();
return false;
} पुस्तकालय में भी
Prometheus मेट्रिक्स TypeScript में: पूर्ण मॉनिटरिंग गाइड
C++ में भू-स्थान और मानचित्र: पुस्तकालयों और उपकरणों का अवलोकन
Swift (iOS/macOS) के लिए लॉगिंग: सर्वश्रेष्ठ लाइब्रेरी और समाधान
Kotlin में YAML के साथ कार्य: लाइब्रेरीज़, उदाहरण और पार्सिंग
PHP में JSON प्रोसेसिंग: फंक्शन, उदाहरण और सर्वोत्तम अभ्यास