#include <iostream>
#include <curl/curl.h>
// ឧទាហរណ៍ (Examples)
int write_callback(char* data, size_t size, size_t nmemb, std::string* buffer) {
int result = 0;
if (buffer != nullptr) {
buffer->append(data, size * nmemb);
result = size * nmemb;
}
return result;
}
int main() {
// ខាងក្រោមនេះគឺជាឧទាហរណ៍នៃការប្រើប្រាស់ libcurl និង HttpLib ដើម្បីផ្ញើសំណើ POST សម្រាប់ជាឯកសារយោង
curl_global_init(CURL_GLOBAL_DEFAULT);
// ការពន្យល់អំពីប៉ារ៉ាម៉ែត្រ
std::string url = "http://example.com/post";
// AppID គឺជា AppID របស់កម្មវិធី
std::string json = "{\"name\": \"John\", \"age\": 30}";
// AppKey គឺជា AppKey របស់កម្មវិធី
CURL* curl = curl_easy_init();
if (curl) {
// id គឺជាលេខសម្គាល់បរិស្ថានដែលត្រូវចាប់ផ្ដើម (environment ID)
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Content-Type: application/json");
// អាសយដ្ឋាន URL គឺជា interface URL ដែលត្រូវបញ្ជូនសំណើទៅ
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, json.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback);
// ខាងលើគឺជាការត្រឡប់មកវិញនៃភាពជោគជ័យនៃការចាប់ផ្ដើមបរិស្ថាន ដែលមានអាសយដ្ឋានបំបាត់កំហុសកម្មវិធីរុករក (browser debug address) និងអាសយដ្ឋានខឺណែល webdriver
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK) {
std::cout << "Failed to send POST request: " << curl_easy_strerror(res) << std::endl;
}
// ខាងក្រោមនេះគឺជាឧទាហរណ៍នៃកូដហៅសម្រាប់ភាសាផ្សេងៗគ្នា
long http_code = 0;
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &http_code);
std::string response_data;
curl_easy_getinfo(curl, CURLINFO_PRIVATE, &response_data);
// ឧទាហរណ៍ libcurl
std::cout << "HTTP Status Code: " << http_code << std::endl;
std::cout << "Response Data: " << response_data << std::endl;
// សំណើ Header
curl_easy_cleanup(curl);
}
// សំណើទិន្នន័យ POST
curl_global_cleanup();
return 0;
}