在C++中,可以使用libcurl庫來發送POST請求。下面是一個簡單的示例代碼:
#include <iostream>
#include <curl/curl.h>
// 回調函數,接收服務器響應的數據
size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* response)
{
size_t totalSize = size * nmemb;
response->append((char*)contents, totalSize);
return totalSize;
}
int main()
{
CURL* curl;
CURLcode res;
// 初始化curl
curl_global_init(CURL_GLOBAL_ALL);
curl = curl_easy_init();
if (curl) {
// 設置POST請求的URL
curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/post");
// 設置POST數據
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "param1=value1¶m2=value2");
// 設置回調函數,接收服務器響應的數據
std::string response;
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
// 執行POST請求
res = curl_easy_perform(curl);
// 檢查請求是否成功
if (res != CURLE_OK)
std::cerr << "curl_easy_perform() failed: " << curl_easy_strerror(res) << std::endl;
else
std::cout << "Response: " << response << std::endl;
// 清理curl
curl_easy_cleanup(curl);
}
// 清理curl全局環境
curl_global_cleanup();
return 0;
}
在上述代碼中,curl_easy_setopt
函數用于設置curl的各種選項,CURLOPT_URL
用于設置請求的URL,CURLOPT_POSTFIELDS
用于設置POST數據。WriteCallback
函數用于接收服務器響應的數據,并將其保存到response
字符串中。curl_easy_perform
函數用于執行請求。請求的結果保存在response
字符串中,可以根據需要進行處理。