2008-12-14 63 views
2

是否有阿帕奇任何現有代碼的HttpClient或servlet的API中解析Cookie頭部和從包含字符串取得「NAME1 =值1; 2 =值2; ...」 Cookie的列表?編寫代碼來解析它似乎並不難,但如果已經有一些現有的代碼,我想使用它。代碼是HttpClient的或servlet API解析Cookie頭部

回答

1

如果您在HttpServletRequest對象上調用getCookies(),它將返回一個Cookie對象的數組。如果你需要的名字頻繁查找的cookie,那麼它可能會更容易把他們的地圖,這樣可以很容易地看看他們(而不是遍歷每次陣列)。事情是這樣的:

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,而不是servlets時,你可以用得到Cookie陣列:

client.getState().getCookies() 

,其中客戶端是你的HttpClient對象。

+0

這假定Servlet API在classpath上可用。 Vert.x不使用HttpServletRequest。 – 2014-03-07 16:51:06