gpt4 book ai didi

c++ - 如何获取 curlpp 响应头

转载 作者:行者123 更新时间:2023-11-28 01:35:33 29 4
gpt4 key购买 nike

我正在调用带有 JSON 负载的 REST WS 来订阅某些事件。服务器使用 HTTP 代码 201 和 HTTP header 中名为 Location 的字段进行响应,其中包含订阅 ID。

例如,在 curl (-v) 中我们得到:

[...]
< HTTP/1.1 201 Created
< Connection: Keep-Alive
< Content-Length: 0
< Location: /v2/subscriptions/5ab386ad4bf6feec37ffe44d
[...]

在使用 curlpp 的 C++ 中,我们希望通过查看响应 header 来检索该 ID。现在我们只有 body react (在本例中为空)。

std::ostringstream response;
subRequest.setOpt(new curlpp::options::WriteStream(&response));

// Send request and get a result.
subRequest.perform();

cout << response.str() << endl;

如何使用curlpp在C++中获取Location头字段(示例中的内容为“/v2/subscriptions/5ab386ad4bf6feec37ffe44d”)?

最佳答案

您可以使用 curlpp::infos::*::get 函数系列检索多个值。例如 HTTP 响应代码:

curlpp::infos::ResponseCode::get(subRequest) 

参见 Infos.hpp完整列表的标题。当您需要一个无法通过这些信息之一获得的值时,您还可以选择在回调中从正文中单独接收 header 。

subRequest.setOpt(new curlpp::options::HeaderFunction(
[] (char* buffer, size_t size, size_t items) -> size_t {
std::string s(buffer, size * items); // buffer is not null terminated
std::cout << s;
return size * items;
}));

关于c++ - 如何获取 curlpp 响应头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49426529/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com