يطلق | دقيقة. معيار سي++ | حالة | ملحوظات |
---|---|---|---|
يتقن | cpp17 | ||
1.11.x | cpp17 | ||
1.10.x | cpp17 | ||
1.9.x | cpp11 | مدعوم حتى 01.01.2025 | |
<= 1.8.x | cpp11 |
طلبات C++ عبارة عن غلاف بسيط حول 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 ;
}
وهنا رمز أقل وظيفية وأكثر تعقيدًا، بدون الإنعاش القلبي الرئوي.
يمكنك العثور على أحدث الوثائق هنا. إنه عمل قيد التقدم، ولكن من المفترض أن يمنحك فكرة أفضل عن كيفية استخدام المكتبة مقارنة بالاختبارات الحالية.
تدعم طلبات 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 من خلال تكوين الإصدار والتصحيح.
يمكن العثور على الحزمة هنا: NuGet.org
على نظام التشغيل macOS، يمكنك تثبيت cpr عبر MacPorts.org (arm64، x86_64، powerpc)
في FreeBSD، يمكنك إصدار pkg install cpr
أو استخدام شجرة المنافذ لتثبيته.
المتطلبات الصريحة الوحيدة هي:
C++17
مثل Clang أوGC. الحد الأدنى المطلوب لإصدار مجلس التعاون الخليجي غير معروف، لذا إذا واجه أي شخص مشكلة في إنشاء هذه المكتبة بإصدار معين من مجلس التعاون الخليجي، فأخبرنا بذلكC++11
فقط، فإن جميع الإصدارات أدناه cpr 1.9.x تناسبك. الإصدار 1.10.0 من cpr يتحول إلى 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
.