温馨提示×

c++中post json请求的超时时间如何设置

c++
小樊
81
2024-09-15 18:25:21
栏目: 编程语言

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

0