풀어 주다 | 최소 C++ 표준 | 상태 | 메모 |
---|---|---|---|
주인 | cpp17 | ||
1.11.x | cpp17 | ||
1.10.x | cpp17 | ||
1.9.x | cpp11 | 2025년 1월 1일까지 지원됨 | |
<= 1.8.x | cpp11 |
C++ Requests는 뛰어난 Python Requests 프로젝트에서 영감을 받아 libcurl을 둘러싼 간단한 래퍼입니다.
이름에도 불구하고 libcurl의 쉬운 인터페이스는 전혀 아니며, 실수를 저지르고 이를 오용하는 것은 오류와 좌절의 일반적인 원인입니다. C++17
(또는 cpr < 1.10.0을 사용하는 경우 C++11
)의 보다 표현적인 언어 기능을 사용하여 이 라이브러리는 네트워크 호출을 만드는 본질을 몇 가지 간결한 관용어로 포착합니다.
다음은 빠른 GET 요청입니다.
# 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 ;
}
그리고 여기에 심폐소생술이 없는 덜 기능적이고 더 복잡한 코드가 있습니다.
여기에서 최신 문서를 찾을 수 있습니다. 진행 중인 작업이지만 현재 테스트보다 라이브러리 사용 방법에 대한 더 나은 아이디어를 제공해야 합니다.
C++ 요청은 현재 다음을 지원합니다.
계획된 기능에 대한 간략한 개요를 보려면 다음 마일스톤을 살펴보세요.
C++ 요청을 통합해야 하는 CMake 프로젝트가 이미 있는 경우 기본 방법은 fetch_content
사용하는 것입니다. 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)
그러면 일반적인 방법으로 연결할 수 있는 대상 cpr::cpr
이 생성됩니다.
target_link_libraries (your_target_name PRIVATE cpr::cpr)
그러면 됩니다! libcurl
직접 처리할 필요는 없습니다. 모든 종속성은 자동으로 처리됩니다. 이 모든 내용은 여기의 예에서 찾을 수 있습니다.
fetch_content
사용하지 않으려면 라이브러리를 다운로드, 빌드 및 설치한 다음 CMake find_package()
함수를 사용하여 프로젝트에 통합할 수 있습니다.
참고: 이 기능은 CPR_USE_SYSTEM_CURL이 설정된 경우에만 가능합니다. (#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 .
대안으로 cpr의 정적 버전과 공유 버전 사이를 전환하려면 '-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 .
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
다음 명령을 통해 실행할 수 있는 다양한 테스트를 제공합니다.
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
hedronvision/bazel-make-cc-https-easy를 참고하세요.
또는 Linux 배포판과 관련된 패키지를 설치할 수도 있습니다. 현재 cpr용 패키지가 있는 배포판이 거의 없기 때문에 대부분의 사용자는 이 접근 방식으로 프로그램을 실행할 수 없습니다.
현재 우리는 다음 배포판에 대한 패키지를 알고 있습니다.
배포용 패키지가 없다면 만들어 보세요! 그렇게 하고 배포 저장소에 추가된 경우 풀 요청을 제출하여 위 목록에 추가하세요. 그러나 패키지를 적극적으로 유지 관리하려는 경우에만 이 작업을 수행하십시오.
Windows의 경우 libcpr NuGet 패키지도 사용할 수 있습니다. 현재 x86 및 x64 빌드는 릴리스 및 디버그 구성에서 지원됩니다.
패키지는 여기에서 찾을 수 있습니다: NuGet.org
macOS에서는 MacPorts.org(arm64, x86_64, powerpc)를 통해 cpr을 설치할 수 있습니다.
FreeBSD에서는 pkg install cpr
실행하거나 포트 트리를 사용하여 설치할 수 있습니다.
명시적인 유일한 요구 사항은 다음과 같습니다.
C++17
호환 컴파일러. GCC의 최소 요구 버전은 알려져 있지 않습니다. 따라서 특정 버전의 GCC로 이 라이브러리를 구축하는 데 문제가 있는 경우 알려주시기 바랍니다.C++11
호환 컴파일러만 사용할 수 있는 경우 cpr 1.9.x 이하의 모든 버전을 사용할 수 있습니다. cpr 1.10.0 릴리스는 요구 사항에 따라 C++17
로 전환됩니다.OpenSSL
및 해당 개발 라이브러리가 필요합니다.>= 7.64.0
을 사용해야 합니다. 낮은 버전은 지원되지 않습니다. 즉, Debian >= 10
또는 Ubuntu >= 20.04 LTS
필요합니다. vcpkg 종속성 관리자를 사용하여 cpr을 다운로드하고 설치할 수 있습니다.
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg integrate install
./vcpkg install cpr
vcpkg의 cpr
포트는 Microsoft 팀 구성원과 커뮤니티 참가자에 의해 최신 상태로 유지됩니다. 버전이 오래된 경우 vcpkg 저장소에서 이슈 또는 풀 요청을 생성하세요.
Conan 패키지 관리자를 사용하여 cpr
다운로드하고 설치할 수 있습니다. CMakeLists.txt를 설정합니다(MSBuild, Meson 및 기타 사용 방법에 대한 Conan 설명서 참조). 예는 여기에서 찾을 수 있습니다.
Conan의 cpr
패키지는 Conan 기여자들에 의해 최신 상태로 유지됩니다. 버전이 오래된 경우 conan-center-index
리포지토리에서 이슈 또는 풀 요청을 생성하세요.