【c++】cpp-httplib

  • GET
#include <fstream>
#include <httplib.h>
#include <iostream>

int main() {
    httplib::Client cli("http://fanyi.baidu.com");
    auto res = cli.Get("/gettts?lan=en&text=apple&spd=5&source=web");

    if (res && res->status == 200) {
        std::ofstream file("apple.mp3", std::ios::binary);
        if (file.is_open()) {
            file.write(res->body.data(), res->body.size());
            file.close();
            std::cout << "音频文件已保存为 apple.mp3" << std::endl;
        } else {
            std::cerr << "无法打开文件进行写入" << std::endl;
        }
    } else {
        std::cerr << "请求失败,状态码: " << res->status << std::endl;
    }

    return 0;
}
  • 重载的GET,提供回调处理接收到的数据
#include <fstream>
#include <httplib.h>
#include <iostream>
#include <vector>

int main() {
    httplib::Client cli("http://fanyi.baidu.com");
    std::vector<char> buffer;

    auto res = cli.Get("/gettts?lan=en&text=apple&spd=5&source=web",
        [&](const char* data, size_t data_length) {
            buffer.insert(buffer.end(), data, data + data_length);
            return true;
        });

    if (res && res->status == 200) {
        std::ofstream file("apple.mp3", std::ios::binary);
        if (file.is_open()) {
            file.write(buffer.data(), buffer.size());
            file.close();
            std::cout << "音频文件已保存为 apple.mp3" << std::endl;
        } else {
            std::cerr << "无法打开文件进行写入" << std::endl;
        }
    } else {
        std::cerr << "请求失败,状态码: " << res->status << std::endl;
    }

    return 0;
}
posted @ 2025-04-20 01:52  仰望星河Leon  阅读(22)  评论(0)    收藏  举报