在C++中,使用libcurl库可以方便地实现POST JSON请求的超时设置
#include#include #include 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 = https://www.yisu.com/ask/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。最后,我们执行请求并检查结果。如果请求成功,超时时间将被自动应用。