ปล่อย | นาที. มาตรฐาน C++ | สถานะ | หมายเหตุ |
---|---|---|---|
ผู้เชี่ยวชาญ | cpp17 | ||
1.11.x | cpp17 | ||
1.10.x | cpp17 | ||
1.9.x | cpp11 | รองรับจนถึง 01.01.2025 | |
<= 1.8.x | cpp11 |
คำขอ C++ เป็น wrapper ง่ายๆ รอบ libcurl ที่ได้รับแรงบันดาลใจจากโปรเจ็กต์ Python Requests ที่ยอดเยี่ยม
แม้จะมีชื่อ แต่อินเทอร์เฟซที่ใช้งานง่ายของ libcurl ก็เป็นอะไรก็ได้ และการทำผิดพลาด การใช้มันในทางที่ผิดเป็นสาเหตุของข้อผิดพลาดและความหงุดหงิดที่พบบ่อย การใช้ภาษา C++17
ที่สื่ออารมณ์ได้มากขึ้น (หรือ C++11
ในกรณีที่คุณใช้ cpr < 1.10.0) ไลบรารีนี้รวบรวมสาระสำคัญของการโทรผ่านเครือข่ายเป็นสำนวนสั้นๆ สองสามสำนวน
นี่คือคำขอ 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 ;
}
และนี่คือโค้ดที่ใช้งานได้น้อยกว่าและซับซ้อนกว่า โดยไม่ต้องมี CPR
คุณสามารถค้นหาเอกสารล่าสุดได้ที่นี่ อยู่ในระหว่างดำเนินการ แต่ควรช่วยให้คุณมีความคิดที่ดีขึ้นเกี่ยวกับวิธีใช้ห้องสมุดมากกว่าการทดสอบในปัจจุบัน
คำขอ C ++ ปัจจุบันรองรับ:
สำหรับภาพรวมโดยย่อเกี่ยวกับฟีเจอร์ที่วางแผนไว้ โปรดดูเหตุการณ์สำคัญครั้งต่อไป
หากคุณมีโปรเจ็กต์ CMake อยู่แล้วและจำเป็นต้องรวมคำขอ C++ ด้วย วิธีหลักคือการใช้ 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 builds ได้รับการสนับสนุนด้วยการกำหนดค่า release และ debug
สามารถดูแพ็คเกจได้ที่นี่: NuGet.org
บน macOS คุณสามารถติดตั้ง cpr ผ่าน MacPorts.org (arm64, x86_64, powerpc)
บน FreeBSD คุณสามารถออก pkg install cpr
หรือใช้แผนผัง Ports เพื่อติดตั้งได้
ข้อกำหนดที่ชัดเจนเพียงอย่างเดียวคือ:
C++17
เช่น Clang หรือ GCC ไม่ทราบเวอร์ชันขั้นต่ำที่ต้องการของ GCC ดังนั้นหากใครมีปัญหาในการสร้างไลบรารีนี้ด้วย GCC เวอร์ชันเฉพาะ โปรดแจ้งให้เราทราบC++11
ทุกเวอร์ชันที่ต่ำกว่า cpr 1.9.x เหมาะสำหรับคุณ cpr รุ่น 1.10.0 เปลี่ยนเป็น C++17
ตามข้อกำหนดOpenSSL
และไลบรารีการพัฒนา>= 7.64.0
ไม่รองรับเวอร์ชันต่ำกว่า ซึ่งหมายความว่าคุณต้องมี Debian >= 10
หรือ Ubuntu >= 20.04 LTS
คุณสามารถดาวน์โหลดและติดตั้ง cpr ได้โดยใช้ตัวจัดการการพึ่งพา vcpkg:
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg integrate install
./vcpkg install cpr
พอร์ต cpr
ใน vcpkg ได้รับการปรับปรุงให้ทันสมัยอยู่เสมอโดยสมาชิกทีม Microsoft และผู้ร่วมให้ข้อมูลในชุมชน หากเวอร์ชันล้าสมัย โปรดสร้างปัญหาหรือดึงคำขอบนที่เก็บ vcpkg
คุณสามารถดาวน์โหลดและติดตั้ง cpr
ได้โดยใช้ตัวจัดการแพ็คเกจ Conan ตั้งค่า CMakeLists.txt ของคุณ (ดูเอกสารประกอบของ Conan เกี่ยวกับวิธีใช้ MSBuild, Meson และอื่นๆ) ตัวอย่างสามารถพบได้ ที่นี่
แพ็คเกจ cpr
ใน Conan ได้รับการอัปเดตโดยผู้ร่วมให้ข้อมูลของ Conan หากเวอร์ชันล้าสมัย โปรดสร้างปัญหาหรือดึงคำขอบนที่เก็บ conan-center-index