Melepaskan | Minimal. Standar C++ | Status | Catatan |
---|---|---|---|
menguasai | cpp17 | ||
1.11.x | cpp17 | ||
1.10.x | cpp17 | ||
1.9.x | cpp11 | Didukung hingga 01.01.2025 | |
<= 1.8.x | cpp11 |
C++ Requests adalah pembungkus sederhana libcurl yang terinspirasi oleh proyek Python Requests yang luar biasa.
Terlepas dari namanya, antarmuka libcurl yang mudah sama sekali tidak ada, dan membuat kesalahan, menyalahgunakannya adalah sumber kesalahan dan frustrasi yang umum. Menggunakan fasilitas bahasa C++17
yang lebih ekspresif (atau C++11
jika Anda menggunakan cpr < 1.10.0), pustaka ini menangkap esensi pembuatan panggilan jaringan ke dalam beberapa idiom ringkas.
Berikut permintaan GET cepat:
# 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 ;
}
Dan inilah kode yang kurang berfungsi dan lebih rumit, tanpa cpr.
Anda dapat menemukan dokumentasi terbaru di sini. Ini masih dalam proses, tetapi ini akan memberi Anda gambaran yang lebih baik tentang cara menggunakan perpustakaan dibandingkan pengujian yang dilakukan saat ini.
Permintaan C++ saat ini mendukung:
Untuk gambaran singkat tentang fitur yang direncanakan, lihat Milestone berikutnya.
Jika Anda sudah memiliki proyek CMake yang perlu Anda integrasikan dengan Permintaan C++, cara utamanya adalah menggunakan fetch_content
. Tambahkan yang berikut ke CMakeLists.txt
Anda.
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)
Ini akan menghasilkan target cpr::cpr
yang dapat Anda tautkan dengan cara biasa:
target_link_libraries (your_target_name PRIVATE cpr::cpr)
Itu seharusnya berhasil! Tidak perlu menangani libcurl
sendiri. Semua ketergantungan ditangani untuk Anda. Semua ini dapat ditemukan dalam contoh di sini .
Jika Anda memilih untuk tidak menggunakan fetch_content
, Anda dapat mengunduh, membangun, dan menginstal perpustakaan lalu menggunakan fungsi CMake find_package()
untuk mengintegrasikannya ke dalam proyek.
Catatan: fitur ini hanya dapat dilakukan jika CPR_USE_SYSTEM_CURL disetel. (lihat #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 .
Sebagai alternatif jika Anda ingin beralih antara versi cpr statis atau bersama, gunakan '-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 .
Di CMakeLists.txt
Anda :
find_package (cpr REQUIRED)
add_executable (your_target_name your_target_name.cpp)
target_link_libraries (your_target_name PRIVATE cpr::cpr)
cpr
menyediakan banyak tes yang dapat dijalankan melalui perintah berikut.
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
Silakan merujuk ke hedronvision/bazel-make-cc-https-easy.
Alternatifnya, Anda dapat menginstal paket khusus untuk distribusi Linux Anda. Karena sangat sedikit distribusi yang saat ini memiliki paket untuk cpr, sebagian besar pengguna tidak akan dapat menjalankan program Anda dengan pendekatan ini.
Saat ini, kami mengetahui paket untuk distribusi berikut:
Jika tidak ada paket untuk distribusi Anda, cobalah membuatnya! Jika ya, dan ditambahkan ke repositori distribusi Anda, kirimkan permintaan tarik untuk menambahkannya ke daftar di atas. Namun, harap lakukan ini hanya jika Anda berencana untuk memelihara paket secara aktif.
Untuk Windows, tersedia juga paket libcpr NuGet. Saat ini, build x86 dan x64 didukung dengan konfigurasi rilis dan debug.
Paketnya dapat ditemukan di sini: NuGet.org
Di macOS Anda dapat menginstal cpr melalui MacPorts.org (arm64, x86_64, powerpc)
Di FreeBSD, Anda dapat menerbitkan pkg install cpr
atau menggunakan pohon Ports untuk menginstalnya.
Satu-satunya persyaratan eksplisit adalah:
C++17
seperti Clang atau GCC. Versi minimum GCC yang diperlukan tidak diketahui, jadi jika ada yang mengalami kesulitan membangun perpustakaan ini dengan versi GCC tertentu, beri tahu kamiC++11
, semua versi di bawah cpr 1.9.x cocok untuk Anda. Rilis cpr 1.10.0 beralih ke C++17
sebagai persyaratan.OpenSSL
dan perpustakaan pengembangannya diperlukan.>= 7.64.0
. Versi yang lebih rendah tidak didukung. Ini berarti Anda memerlukan Debian >= 10
atau Ubuntu >= 20.04 LTS
. Anda dapat mengunduh dan menginstal cpr menggunakan pengelola ketergantungan vcpkg:
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg integrate install
./vcpkg install cpr
Port cpr
di vcpkg selalu diperbarui oleh anggota tim Microsoft dan kontributor komunitas. Jika versinya sudah kedaluwarsa, silakan buat masalah atau tarik permintaan pada repositori vcpkg.
Anda dapat mengunduh dan menginstal cpr
menggunakan manajer paket Conan. Siapkan CMakeLists.txt Anda (lihat dokumentasi Conan tentang cara menggunakan MSBuild, Meson, dan lainnya). Contohnya dapat ditemukan di sini .
Paket cpr
di Conan selalu diperbarui oleh kontributor Conan. Jika versinya sudah kedaluwarsa, silakan buat masalah atau tarik permintaan pada repositori conan-center-index
.