前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【C++】开源:网络请求库cpr配置与使用

【C++】开源:网络请求库cpr配置与使用

作者头像
DevFrank
发布2024-07-24 15:56:00
900
发布2024-07-24 15:56:00
举报
文章被收录于专栏:C++开发学习交流

😏1. 项目介绍

官网:https://docs.libcpr.org/

Github地址:https://github.com/libcpr/cpr

CPRC++ Requests)是一个现代化的、轻量级的、功能强大的C++网络请求库,用于进行HTTP请求和处理HTTP响应。它提供了简洁且易于使用的API,使开发人员能够以简单的方式执行HTTP请求并处理响应。

以下是CPR库的一些特点和功能:

1.轻量级和易于使用:CPR具有简单而直观的API设计,使您能够轻松地执行常见的HTTP请求,如GET、POST、PUT和DELETE等。

2.多种请求参数设置:您可以设置请求的URL、请求头、请求体、查询参数、超时时间等各种请求参数。这使得您可以根据需要进行灵活的配置。

3.异步和同步请求:CPR支持异步和同步两种方式进行请求。您可以选择适合您应用程序的方式来执行请求。

4.响应处理和错误处理:CPR提供了处理HTTP响应的丰富功能,包括获取响应状态码、响应头、响应体等。它还提供了错误处理机制,以便在出现错误时进行适当的处理。

5.文件上传和下载:CPR支持文件上传和下载功能,使您能够方便地进行文件的传输操作。

6.支持各种平台:CPR可以在多种平台上运行,包括Windows、Linux和macOS等。

😊2. 环境配置

下面进行环境配置:

代码语言:javascript
复制
# 源码安装
sudo apt install build-essential cmake libcurl4-openssl-dev libssl-dev
git clone https://github.com/libcpr/cpr
mkdir build
cd build
cmake ..
make
sudo make install
代码语言:javascript
复制
# 编译
g++ -std=c++17 -o main main.cpp -lcpr

😆3. 使用说明

HTTP请求与响应示例:

代码语言:javascript
复制
// Get
#include <cpr/cpr.h>
#include <iostream>

int main(int argc, char** argv) {
    cpr::Response r = cpr::Get(cpr::Url{"https://api.github.com/repos/libcpr/cpr/contributors"},
                      cpr::Authentication{"user", "pass", cpr::AuthMode::BASIC},
                      cpr::Parameters{{"anon", "true"}, {"key", "value"}});
    r.status_code;                  // 200
    r.header["content-type"];       // application/json; charset=utf-8
    r.text;                         // JSON text string
    std::cout << "status_code: " << r.status_code << std::endl;
    std::cout << "header: " << r.header["content-type"] << std::endl;
    std::cout << "text: " << r.text << std::endl;
}
代码语言:javascript
复制
// Post
#include <iostream>
#include <cpr/cpr.h>

int main() {
    // 构造要发送的JSON数据
    std::string json_data = R"({"name": "John", "age": 30})";

    // 发起POST请求 
    cpr::Response response = cpr::Post(cpr::Url{"https://api.github.com/repos/libcpr/cpr/contributors"}, cpr::Body{json_data});

    // 检查请求是否成功
    if (response.status_code == 200) {
        std::cout << "请求成功!" << std::endl;
        std::cout << "响应内容:" << response.text << std::endl;
    } else {
        std::cout << "请求失败!错误代码:" << response.status_code << std::endl;
        std::cout << "错误信息:" << response.error.message << std::endl;
    }

    return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-07-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 😏1. 项目介绍
  • 😊2. 环境配置
  • 😆3. 使用说明
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档