// Copyright (c) 2020 by Chrono // // https://github.com/whoshuu/cpr/ // cmake . -DUSE_SYSTEM_CURL=ON -DBUILD_CPR_TESTS=OFF // make && make install // // g++ cpr.cpp -std=c++14 -lcpr -lpthread -lcurl -o a.out;./a.out #include #include #include using namespace std; void case1() { //const auto url = "http://nginx.org"s; const auto url = "http://openresty.org"s; auto res = cpr::Get( cpr::Url{url} ); cout << res.elapsed << endl; cout << res.url << endl; cout << res.status_code << endl; //cout << res.header["server"] << endl; cout << res.text.length() << endl; for(auto& x : res.header) { cout << x.first << "=>" << x.second << endl; } cout << endl; } void case2() { //const auto url = "http://www.163.com"s; const auto url = "http://openresty.org"s; auto res1 = cpr::Head( cpr::Url{url} ); assert(res1.text.empty()); auto res2 = cpr::Get( cpr::Url{url}, cpr::Parameters{ {"a", "1"}, {"b", "2"}} ); auto res3 = cpr::Post( cpr::Url{url}, cpr::Header{{"x", "xxx"},{"expect",""}}, cpr::Body{"post data"}, cpr::Timeout{200ms} ); } void case3() { auto f = cpr::GetAsync( cpr::Url{"http://openresty.org"} ); auto res = f.get(); cout << res.elapsed << endl; for(auto& x : res.header) { cout << x.first << "=>" << x.second << endl; } } int main() { case1(); case2(); case3(); cout << "libcpr demo" << endl; }