溫馨提示×

c++中post json請求的超時時間如何設(shè)置

c++
小樊
85
2024-09-15 18:25:21
欄目: 編程語言

在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)用。

0