在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。最后,我们执行请求并检查结果。如果请求成功,超时时间将被自动应用。