You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oat++项目中如何获取请求的Cookie键值对?

在Oat++中获取Cookie键值对的实现方式

对应你在Quart中使用request.cookies.get()获取Cookie的逻辑,Oat++提供了两种简洁的方式来获取请求中的Cookie键值对:

1. 直接获取单个Cookie

通过请求对象的getCookie()方法可以直接获取指定名称的Cookie值,若Cookie不存在则返回空的oatpp::String:

ENDPOINT("GET", "/your-endpoint", yourHandler) {
    // 获取指定名称的Cookie
    oatpp::String retrieved_token = request->getCookie("COOKIE_TOKEN");
    oatpp::String retrieved_username = request->getCookie("COOKIE_USER");

    // 后续业务逻辑处理...
    return createResponse(Status::CODE_200, "Success");
}

2. 获取全部Cookie的键值对Map

如果你需要一次性获取所有Cookie,可以通过getCookies()方法拿到完整的Cookie映射表,再从中取出目标值:

ENDPOINT("GET", "/your-endpoint", yourHandler) {
    // 获取所有Cookie的映射
    const auto& cookie_map = request->getCookies();
    
    // 从映射表中取值
    oatpp::String retrieved_token = cookie_map.get("COOKIE_TOKEN");
    oatpp::String retrieved_username = cookie_map.get("COOKIE_USER");

    // 后续业务逻辑处理...
    return createResponse(Status::CODE_200, "Success");
}

关于设置Cookie的补充

正如你了解的,Oat++中设置Cookie是通过向响应头添加Set-Cookie字段实现的,示例代码如下:

ENDPOINT("GET", "/set-cookies", setCookiesHandler) {
    auto response = createResponse(Status::CODE_200, "Cookies set");
    // 添加Cookie,可附带Path、HttpOnly、Max-Age等属性
    response->putHeader("Set-Cookie", "COOKIE_TOKEN=your_token_value; Path=/; HttpOnly");
    response->putHeader("Set-Cookie", "COOKIE_USER=your_username; Path=/; Max-Age=86400");
    return response;
}

内容的提问来源于stack exchange,提问作者Swatcat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 07:07:09