【问题标题】:Code is HttpClient or servlet API to parse Cookie header代码是 HttpClient 或 servlet API 来解析 Cookie 头
【发布时间】:2010-09-26 20:14:59
【问题描述】:

Apache HttpClient 或 servlet API 中是否有任何现有代码来解析 Cookie 标头并从包含“name1=value1;name2=value2;...”的字符串中获取 Cookie 列表?编写代码来解析这个似乎并不难,但如果已经有一些现有的代码,我想使用它。

【问题讨论】:

    标签: http header cookies httpclient


    【解决方案1】:

    如果您在HttpServletRequest 对象上调用getCookies(),它将返回一个Cookie 对象数组。如果您需要经常按名称查找 cookie,那么将它们放入 Map 中可能会更容易,因此查找它们很容易(而不是每次都遍历 Array)。像这样的:

    public static Map<String,Cookie> getCookieMap(HttpServletRequest request) {
        Cookie[] cookies = request.getCookies();
        HashMap<String,Cookie> cookieMap = new HashMap<String,Cookie>();
        if (cookies != null) {
            for (Cookie cookie : cookies) {
                cookieMap.put(cookie.getName(), cookie);
            }
        }
        return cookieMap;
    }
    

    如果您使用的是 HttpClient 而不是 servlet,则可以使用以下方法获取 Cookie 数组:

    client.getState().getCookies()
    

    client 是你的 HttpClient 对象。

    【讨论】:

    • 这假定 Servlet API 在类路径上可用。 Vert.x 不使用 HttpServletRequest。
    猜你喜欢
    • 2011-03-13
    • 1970-01-01
    • 2013-03-13
    • 1970-01-01
    • 2013-04-14
    • 2016-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多