使用 C++ 的 libcurl 库发送 HTTP GET 请求并获取响应数据

本文将介绍如何使用 C++ 的 libcurl 库发送 HTTP GET 请求到指定的 URL,并获取服务器返回的数据。

代码示例

以下是一个示例代码,使用 C++ 的 libcurl 库来创建 HTTP GET 请求并接收返回的数据:

#include <iostream>
#include <curl/curl.h>

int main()
{
    CURL *curl;
    CURLcode res;

    curl_global_init(CURL_GLOBAL_DEFAULT);

    curl = curl_easy_init();
    if (curl) {
        std::string url = 'http://fangke.zstu.edu.cn:6007/swagger';
        curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
        curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);

        // 设置接收返回数据的回调函数
        std::string response;
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, [](char *ptr, size_t size, size_t nmemb, void *userdata) -> size_t {
            std::string *response = (std::string*)userdata;
            response->append(ptr, size * nmemb);
            return size * nmemb;
        });
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);

        // 执行请求
        res = curl_easy_perform(curl);

        if (res != CURLE_OK)
            std::cerr << "curl_easy_perform() failed: " << curl_easy_strerror(res) << std::endl;

        std::cout << "Response:" << std::endl << response << std::endl;

        curl_easy_cleanup(curl);
    }

    curl_global_cleanup();

    return 0;
}

代码解释

在上面的代码中,首先初始化了 libcurl 库,并创建了一个 CURL 对象。然后设置了请求的 URL 和是否跟踪重定向。接着设置了接收返回数据的回调函数,该函数在每次接收到数据时会将其添加到一个 std::string 对象中。最后执行请求,并在请求完成后输出接收到的数据。

注意

需要注意的是,上面的示例代码中并没有对请求过程中可能出现的错误进行处理,实际使用时应该根据需要进行相应的错误处理。

C++ 使用 libcurl 发送 HTTP GET 请求并获取响应数据

原文地址: https://www.cveoy.top/t/topic/m186 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录