2015-09-11 2 views
0

Я хочу преобразовать apache BasicClientCookie в java.net.HttpCookie, или наоборот. Я обнаружил, что в BasicClientCookie отсутствует атрибут max-age, доступный в HttpCookie, однако в BasicClientCookie существует атрибут expires.Java: набор BasicClientCookie setExpiryDate и HttpCookie setMaxAge

Как преобразовать максимальный возраст и истекать друг к другу. Когда я получу HttpCookie, он существует какое-то время, тогда я бы не знал точную дату истечения срока действия в BasicClientCookie? Как конвертировать эти два типа файлов cookie?

Я просто использовать его таким образом, но, кажется, не очень уместно

long expireMillion = System.currentTimeMillis() + maxAge*1000; 
    apacheCookie.setExpiryDate(new Date(expireMillion)); 

ответ

0

Я думаю, что вы очень близки к правильному ответу. В HttpCookie есть частный метод «setExpires» Вот код.

private void setExpires(Date expires) { 
maxAge = (expires.getTime() - System.currentTimeMillis())/1000;} 

Таким образом, вы можете вызвать setMaxAge ((apacheCookie.getExpiryDate() GetTime() - System.currentTimeMillis())/1000.);

Если вы хотите конвертировать HttpCookie в apachCookie Вы должны переопределить

недействительной надстройки (Uri Uri, HttpCookie печенья)

функцию в java.net.CookieStore.

В этой функции вы можете получить дату истечения срока действия со следующей формулой.

httpCookie.getMaxAge() * 1000 + System.currentTimeMillis()

, а затем вызвать apacheCookie.setExpiryDate (новый Date ([то, что вы получите из формулы выше]))

Смежные вопросы