Liberar | Mín. Estándar C++ | Estado | Notas |
---|---|---|---|
maestro | cpp17 | ||
1.11.x | cpp17 | ||
1.10.x | cpp17 | ||
1.9.x | cpp11 | Soportado hasta el 01.01.2025 | |
<= 1.8.x | cpp11 |
C++ Requests es un contenedor simple de libcurl inspirado en el excelente proyecto Python Requests.
A pesar de su nombre, la sencilla interfaz de libcurl es todo lo contrario, y cometer errores y hacer un mal uso de ella es una fuente común de error y frustración. Utilizando las funciones de lenguaje más expresivas de C++17
(o C++11
en caso de que use cpr < 1.10.0), esta biblioteca captura la esencia de realizar llamadas de red en unos pocos modismos concisos.
Aquí hay una solicitud GET rápida:
# include < cpr/cpr.h >
int main ( int argc, char ** argv) {
cpr::Response r = cpr::Get (cpr::Url{ " https://api.github.com/repos/whoshuu/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
return 0 ;
}
Y aquí hay un código menos funcional y más complicado, sin cpr.
Puede encontrar la documentación más reciente aquí. Es un trabajo en progreso, pero debería darle una mejor idea de cómo usar la biblioteca que las pruebas actuales.
Las solicitudes de C++ actualmente admiten:
Para obtener una descripción general rápida de las funciones planificadas, consulte los siguientes hitos.
Si ya tiene un proyecto de CMake con el que necesita integrar solicitudes de C++, la forma principal es utilizar fetch_content
. Agregue lo siguiente a su CMakeLists.txt
.
include (FetchContent)
FetchContent_Declare(cpr GIT_REPOSITORY https://github.com/libcpr/cpr.git
GIT_TAG dec9422db3af470641f8b0d90e4b451c4daebf64) # Replace with your desired git commit from: https://github.com/libcpr/cpr/releases
FetchContent_MakeAvailable(cpr)
Esto producirá el objetivo cpr::cpr
que puedes vincular de la forma típica:
target_link_libraries (your_target_name PRIVATE cpr::cpr)
¡Eso debería bastar! No es necesario que manejes libcurl
tú mismo. Todas las dependencias están atendidas por usted. Todo esto se puede encontrar en un ejemplo aquí .
Si prefiere no utilizar fetch_content
, puede descargar, compilar e instalar la biblioteca y luego usar la función CMake find_package()
para integrarla en un proyecto.
Nota: esta función solo es factible si se establece CPR_USE_SYSTEM_CURL. (ver #645)
git clone https://github.com/libcpr/cpr.git
cd cpr && mkdir build && cd build
cmake .. -DCPR_USE_SYSTEM_CURL=ON
cmake --build . --parallel
sudo cmake --install .
Como alternativa, si desea cambiar entre una versión estática o compartida de cpr, utilice '-DBUILD_SHARED_LIBS=ON/OFF'.
git clone https://github.com/libcpr/cpr.git
cd cpr && mkdir build && cd build
cmake .. -DCPR_USE_SYSTEM_CURL=ON -DBUILD_SHARED_LIBS=OFF
cmake --build . --parallel
sudo cmake --install .
En su CMakeLists.txt
:
find_package (cpr REQUIRED)
add_executable (your_target_name your_target_name.cpp)
target_link_libraries (your_target_name PRIVATE cpr::cpr)
cpr
proporciona una serie de pruebas que se pueden ejecutar mediante los siguientes comandos.
git clone https://github.com/libcpr/cpr.git
cd cpr && mkdir build && cd build
cmake .. -DCPR_BUILD_TESTS=ON # There are other test related options like 'CPR_BUILD_TESTS_SSL' and 'CPR_BUILD_TESTS_PROXY'
cmake --build . --parallel
ctest -VV # -VV is optional since it enables verbose output
Consulte hedronvision/bazel-make-cc-https-easy.
Alternativamente, puede instalar un paquete específico para su distribución de Linux. Dado que actualmente hay muy pocas distribuciones que tengan un paquete para cpr, la mayoría de los usuarios no podrán ejecutar su programa con este enfoque.
Actualmente, conocemos paquetes para las siguientes distribuciones:
Si no hay ningún paquete para su distribución, ¡intente crear uno! Si lo hace y se agrega a los repositorios de su distribución, envíe una solicitud de extracción para agregarlo a la lista anterior. Sin embargo, solo haga esto si planea mantener activamente el paquete.
Para Windows, también hay disponible un paquete libcpr NuGet. Actualmente, las compilaciones x86 y x64 son compatibles con la configuración de lanzamiento y depuración.
El paquete se puede encontrar aquí: NuGet.org
En macOS puede instalar cpr a través de MacPorts.org (arm64, x86_64, powerpc)
En FreeBSD, puede ejecutar pkg install cpr
o utilizar el árbol de Puertos para instalarlo.
Los únicos requisitos explícitos son:
C++17
como Clang o GCC. Se desconoce la versión mínima requerida de GCC, por lo que si alguien tiene problemas para crear esta biblioteca con una versión específica de GCC, háganoslo saber.C++11
, todas las versiones inferiores a cpr 1.9.x son para usted. La versión 1.10.0 de cpr cambia a C++17
como requisito.OpenSSL
y sus bibliotecas de desarrollo.>= 7.64.0
. No se admiten versiones inferiores. Esto significa que necesita Debian >= 10
o Ubuntu >= 20.04 LTS
. Puede descargar e instalar cpr utilizando el administrador de dependencias vcpkg:
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg integrate install
./vcpkg install cpr
Los miembros del equipo de Microsoft y los contribuyentes de la comunidad mantienen actualizado el puerto cpr
en vcpkg. Si la versión no está actualizada, cree un problema o una solicitud de extracción en el repositorio de vcpkg.
Puede descargar e instalar cpr
utilizando el administrador de paquetes de Conan. Configure su CMakeLists.txt (consulte la documentación de Conan sobre cómo usar MSBuild, Meson y otros). Puede encontrar un ejemplo aquí .
Los colaboradores de Conan mantienen actualizado el paquete cpr
en Conan. Si la versión no está actualizada, cree una incidencia o una solicitud de extracción en el repositorio conan-center-index
.