Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

c++ http

作者:拽一个给爷看   发布日期:2025-11-28   浏览:49

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

// 回调函数,用于处理从服务器接收到的数据
size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* userp) {
    size_t totalSize = size * nmemb;
    userp->append((char*)contents, totalSize);
    return totalSize;
}

int main() {
    CURL* curl;
    CURLcode res;
    std::string readBuffer;

    curl = curl_easy_init();
    if (curl) {
        // 设置URL
        curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");

        // 设置回调函数,将响应数据存储到readBuffer中
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, &readBuffer);

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

        // 检查请求是否成功
        if (res != CURLE_OK) {
            std::cerr << "curl_easy_perform() failed: " << curl_easy_strerror(res) << std::endl;
        } else {
            // 输出响应内容
            std::cout << readBuffer << std::endl;
        }

        // 清理CURL资源
        curl_easy_cleanup(curl);
    }

    return 0;
}

解释说明

  1. 引入必要的头文件

    • #include <iostream>#include <string> 用于标准输入输出和字符串操作。
    • #include <curl/curl.h> 用于使用libcurl库进行HTTP请求。
  2. 回调函数 WriteCallback

    • 该函数用于处理从服务器接收到的数据,并将其追加到 readBuffer 字符串中。
    • void* contents 是接收到的数据指针,size_t sizesize_t nmemb 分别表示每个数据块的大小和数据块的数量,std::string* userp 是用户提供的缓冲区。
  3. 主函数 main

    • 初始化CURL句柄 curl_easy_init()
    • 设置请求的URL curl_easy_setopt(curl, CURLOPT_URL, "http://example.com")
    • 设置回调函数 curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback) 和回调函数的参数 curl_easy_setopt(curl, CURLOPT_WRITEDATA, &readBuffer)
    • 执行HTTP请求 curl_easy_perform(curl)
    • 检查请求是否成功,并输出响应内容。
    • 清理CURL资源 curl_easy_cleanup(curl)

这个示例展示了如何使用C++和libcurl库发起一个简单的HTTP GET请求,并处理服务器返回的数据。

上一篇:c++定义字符串

下一篇:c++ insert

大家都在看

c++闭包

c++单引号和双引号的区别

c++ 注释

c++如何判断素数

c++格式化字符串

c++ orm框架

c++ random函数用法

队列c++

c++freopen怎么用

进制转换c++代码

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站