在C++中,使用libcurl庫可以方便地實現(xiàn)POST JSON請求的超時設(shè)置
#include <iostream>
#include <string>
#include <curl/curl.h>
int main() {
CURL* curl = curl_easy_init();
if (curl) {
// 設(shè)置URL
curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/api");
// 設(shè)置超時時間(單位:秒)
curl_easy_setopt(curl, CURLOPT_TIMEOUT, 10L);
// 設(shè)置POST請求
curl_easy_setopt(curl, CURLOPT_POST, 1L);
// 構(gòu)建JSON字符串
std::string json_data = R"({"key": "value"})";
// 設(shè)置POST數(shù)據(jù)
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, json_data.c_str());
// 設(shè)置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);
// 執(zhí)行請求
CURLcode res = curl_easy_perform(curl);
// 檢查請求結(jié)果
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句柄,然后設(shè)置URL、超時時間、POST請求和JSON數(shù)據(jù)。接著,我們設(shè)置HTTP頭部,將Content-Type設(shè)置為application/json。最后,我們執(zhí)行請求并檢查結(jié)果。如果請求成功,超時時間將被自動應(yīng)用。