在C++中,使用libcurl庫可以方便地實現POST JSON請求的超時設置
#include <iostream>
#include <string>
#include <curl/curl.h>
int main() {
CURL* curl = curl_easy_init();
if (curl) {
// 設置URL
curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/api");
// 設置超時時間(單位:秒)
curl_easy_setopt(curl, CURLOPT_TIMEOUT, 10L);
// 設置POST請求
curl_easy_setopt(curl, CURLOPT_POST, 1L);
// 構建JSON字符串
std::string json_data = R"({"key": "value"})";
// 設置POST數據
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, json_data.c_str());
// 設置HTTP頭部,添加Content-Type為application/json
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
// 執行請求
CURLcode res = curl_easy_perform(curl);
// 檢查請求結果
if (res != CURLE_OK) {
std::cerr << "Error: " << curl_easy_strerror(res) << std::endl;
}
// 清理資源
curl_easy_cleanup(curl);
curl_slist_free_all(headers);
}
return 0;
}
在這個示例中,我們首先初始化一個CURL句柄,然后設置URL、超時時間、POST請求和JSON數據。接著,我們設置HTTP頭部,將Content-Type設置為application/json。最后,我們執行請求并檢查結果。如果請求成功,超時時間將被自動應用。