如何在拥有 bost POST 数据和标头数据的同时与卡萨布兰卡执行 API 调用

How can I perform an API call with Casablanca while having bost POST data and header data?

本文关键字:数据 卡萨布兰卡 调用 API 执行 拥有 bost POST      更新时间:2023-10-16

我目前正在寻找一种通过 casablanca/C++ Rest SDK 发送 POST 请求的方法。

它适用于 reddit API,我应该在我的 POST 数据中发送 3 对值,以及 2 对带有我的标头的值。

我知道我可以像这样向我的标题添加值:

web::http::http_request authRequest(web::http::methods::POST);
authRequest.headers().add(L"client_id", <code>);
authRequest.headers().add(L"client_secret", <secret>);

另外,我知道如何附加 POST 数据:

web::http::client::http_client client(<url>); 
web::json::value postData;
client.request(methods::POST, <parameter>, postData , <parameter>);

但是,我不知道如何将两者合并为一个请求。

我觉得我可以用版本 2 完成这一切,同时将我的标头数据作为某种参数传递,但我不太清楚如何。我一直在阅读文档,但是每个参数都说"把这个数据放在这里,那个数据放在这里",所以我对在哪个点传递什么感到困惑。

此外,我在网络编程方面的词汇方面也不太有经验,所以我自己也不太清楚。

我很乐意得到一些建议!

http_request对象有一个方法set_body(),可用于设置 POST 数据。在您的示例中,这看起来像

authRequest.set_body(postData);

参考文档