Liberar | Min. Padrão C++ | Status | Notas |
---|---|---|---|
mestre | cpp17 | ||
1.11.x | cpp17 | ||
1.10.x | cpp17 | ||
1.9.x | cpp11 | Suportado até 01/01/2025 | |
<= 1.8.x | cpp11 |
C++ Requests é um wrapper simples em torno de libcurl inspirado no excelente projeto Python Requests.
Apesar do nome, a interface fácil do libcurl é tudo menos isso, e cometer erros e usá-lo indevidamente é uma fonte comum de erro e frustração. Usando os recursos de linguagem mais expressivos do C++17
(ou C++11
caso você use cpr < 1.10.0), esta biblioteca captura a essência de fazer chamadas de rede em alguns idiomas concisos.
Aqui está uma solicitação 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 ;
}
E aqui está um código menos funcional e mais complicado, sem cpr.
Você pode encontrar a documentação mais recente aqui. É um trabalho em andamento, mas deve lhe dar uma ideia melhor de como usar a biblioteca do que os testes atuais.
Solicitações C++ atualmente suportam:
Para uma rápida visão geral sobre os recursos planejados, dê uma olhada nos próximos Marcos.
Se você já possui um projeto CMake com o qual precisa integrar solicitações C++, a maneira principal é usar fetch_content
. Adicione o seguinte ao seu 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)
Isso produzirá o alvo cpr::cpr
que você pode vincular da maneira típica:
target_link_libraries (your_target_name PRIVATE cpr::cpr)
Isso deve bastar! Não há necessidade de lidar com libcurl
sozinho. Todas as dependências são cuidadas para você. Tudo isso pode ser encontrado em um exemplo aqui .
Se preferir não usar fetch_content
, você pode baixar, construir e instalar a biblioteca e então usar a função find_package()
do CMake para integrá-la a um projeto.
Nota: este recurso só é viável se CPR_USE_SYSTEM_CURL estiver definido. (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, se você quiser alternar entre uma versão estática ou compartilhada do cpr, use '-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 .
No seu 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
fornece vários testes que podem ser executados por meio dos comandos a seguir.
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, você pode instalar um pacote específico para sua distribuição Linux. Como atualmente poucas distribuições possuem um pacote para cpr, a maioria dos usuários não conseguirá executar seu programa com esta abordagem.
Atualmente, temos conhecimento de pacotes para as seguintes distribuições:
Se não houver nenhum pacote para sua distribuição, tente criar um! Se você fizer isso, e ele for adicionado aos repositórios da sua distribuição, envie uma solicitação pull para adicioná-lo à lista acima. No entanto, faça isso apenas se você planeja manter ativamente o pacote.
Para Windows, também há um pacote libcpr NuGet disponível. Atualmente, compilações x86 e x64 são suportadas com configuração de versão e depuração.
O pacote pode ser encontrado aqui: NuGet.org
No macOS você pode instalar o cpr via MacPorts.org (arm64, x86_64, powerpc)
No FreeBSD, você pode executar pkg install cpr
ou usar a árvore de Ports para instalá-lo.
Os únicos requisitos explícitos são:
C++17
como Clang ou GCC. A versão mínima necessária do GCC é desconhecida, então se alguém tiver problemas para construir esta biblioteca com uma versão específica do GCC, avise-nosC++11
disponível, todas as versões abaixo do cpr 1.9.x são para você. A versão 1.10.0 do cpr muda para C++17
como um requisito.OpenSSL
e suas bibliotecas de desenvolvimento são necessários.>= 7.64.0
. Versões inferiores não são suportadas. Isso significa que você precisa do Debian >= 10
ou Ubuntu >= 20.04 LTS
. Você pode baixar e instalar o cpr usando o gerenciador de dependência vcpkg:
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg integrate install
./vcpkg install cpr
A porta cpr
no vcpkg é mantida atualizada pelos membros da equipe da Microsoft e colaboradores da comunidade. Se a versão estiver desatualizada, crie um problema ou solicitação pull no repositório vcpkg.
Você pode baixar e instalar cpr
usando o gerenciador de pacotes Conan. Configure seu CMakeLists.txt (consulte a documentação do Conan sobre como usar MSBuild, Meson e outros). Um exemplo pode ser encontrado aqui .
O pacote cpr
no Conan é mantido atualizado pelos contribuidores do Conan. Se a versão estiver desatualizada, crie um problema ou solicitação pull no repositório conan-center-index
.