繁体   English   中英

使用 CPR 从 C++ 调用 HTTP?

[英]HTTP call from C++ using CPR?

我想使用CPR Github 库在 cpp 中发出 POST 请求

下面给出了等效的curl请求。

echo '{"fund_name": "UTI Dual Advantage Fixed Term Fund Series I-IV (1099 Days) - Direct Plan - Dividend Option","from_date":"2015-01-15","to_date": "2016-12-15"}' | curl -d @- http://<ip>:<port>/api/v1/es/search

当我尝试使用此代码拨打电话时,总是收到500

auto r1 = cpr::Post(cpr::Url{"http://<ip>:<port>/api/v1/es/search"},
                           cpr::Payload{{"fund_name", fundName},
                                         {"from_date", startDate},
                                         {"to_date", endDate}}
        );

我想,我无法正确转换json 任何建议。

我可以使用 cpr 发出 get 请求。

auto r = cpr::Get(cpr::Url{"https://api.github.com/repos/whoshuu/cpr/contributors"},
                      cpr::Authentication{"user", "pass"},
                      cpr::Parameters{{"anon", "true"}, {"key", "value"}});
    r.status_code;                  // 200
    r.header["content-type"];       // application/json; charset=utf-8
    r.text;                         // JSON text string
}

我需要将json对象传递到正文中。

        Json my_json = Json::object {
                {"fund_name", fundName},
                {"from_date", startDate},
                {"to_date", endDate}
        };
        auto r1 = cpr::Post(cpr::Url{"http://<ip>:<port>/api/v1/es/search"},
                            cpr::Body{my_json.dump()}
        );

cpr::Payloads{} , cpr::Parameters{}url params 中传递参数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM