添加具有最大到期日java date Aug 17,292278994 12:42:55 PM的Cookie时,Cookie到期日必须为正整数
我正在尝试添加以下cookie,其有效期为最大java日期8月17日,292278994 12:42:55 PM,该cookie是从firefox web驱动程序的url生成的。 执行此操作时,我得到的Cookie过期时间必须是正整数错误。当过期日期的年份被修改时,cookie似乎不起作用 曲奇:添加具有最大到期日java date Aug 17,292278994 12:42:55 PM的Cookie时,Cookie到期日必须为正整数,java,firefox,selenium-webdriver,cookies,session-cookies,Java,Firefox,Selenium Webdriver,Cookies,Session Cookies,我正在尝试添加以下cookie,其有效期为最大java日期8月17日,292278994 12:42:55 PM,该cookie是从firefox web驱动程序的url生成的。 执行此操作时,我得到的Cookie过期时间必须是正整数错误。当过期日期的年份被修改时,cookie似乎不起作用 曲奇: { { "name": "..dbcjjd", "value": "1.2.3.4", "path": "/",
{
{
"name": "..dbcjjd",
"value": "1.2.3.4",
"path": "/",
"domain": "abc.com",
"expiry": "Aug 17, 292278994 12:42:55 PM",
"isSecure": true,
"isHttpOnly": false
},
{
"name": "..dbcjjd",
"value": "1.2.3.4",
"path": "/",
"domain": "abc.com",
"expiry": "Jun 22, 2018 4:11:20 PM",
"isSecure": true,
"isHttpOnly": false
}
}
Adding Cookie to driver:
for(Cookie ck : cookieList)
{
Cookie newCookie = new Cookie(ck.getName(),ck.getValue(),domain,
ck.getPath(), ck.getExpiry(), ck.isSecure());
webDriver.manage().addCookie(newCookie);
}
这在最新的Firefox59版本中得到了体验。firefox较低版本中的同一url提供了空有效期。根据格式正确的日期,有一个由4位数字组成的年份字段,见下文。您提供的年份似乎会导致整数溢出,导致时间戳为负值
一个不过期的曲奇或者仅仅加上50年怎么样?不管你现在做的是什么,50年后都不会使用。firefox 59中的应用程序URL生成的cookie包含了在不同会话中尝试返回驱动程序时的最大java日期,这就造成了这个问题。如果将有效期改为50年,cookie似乎不起作用。有没有办法处理导致负值的整数溢出,由于这是在Firefox 59中生成的,并且Firefox版本较低,它会创建一个无过期的cookie,而不是最大java日期,并允许在不同会话中重用。cookie是由服务器而不是客户端浏览器创建的。我不确定你所说的这是在Firefox59中生成的。浏览器不生成cookie。问题中的Java代码在哪里运行?我们实在没有足够详细的背景来理解这个问题,更不用说帮助你了。
Preferred format:
IMF-fixdate = day-name "," SP date1 SP time-of-day SP GMT
; fixed length/zone/capitalization subset of the format
; see Section 3.3 of [RFC5322]
day-name = %x4D.6F.6E ; "Mon", case-sensitive
/ %x54.75.65 ; "Tue", case-sensitive
/ %x57.65.64 ; "Wed", case-sensitive
/ %x54.68.75 ; "Thu", case-sensitive
/ %x46.72.69 ; "Fri", case-sensitive
/ %x53.61.74 ; "Sat", case-sensitive
/ %x53.75.6E ; "Sun", case-sensitive
date1 = day SP month SP year
; e.g., 02 Jun 1982
day = 2DIGIT
month = %x4A.61.6E ; "Jan", case-sensitive
/ %x46.65.62 ; "Feb", case-sensitive
/ %x4D.61.72 ; "Mar", case-sensitive
/ %x41.70.72 ; "Apr", case-sensitive
/ %x4D.61.79 ; "May", case-sensitive
/ %x4A.75.6E ; "Jun", case-sensitive
/ %x4A.75.6C ; "Jul", case-sensitive
/ %x41.75.67 ; "Aug", case-sensitive
/ %x53.65.70 ; "Sep", case-sensitive
/ %x4F.63.74 ; "Oct", case-sensitive
/ %x4E.6F.76 ; "Nov", case-sensitive
/ %x44.65.63 ; "Dec", case-sensitive
year = 4DIGIT
GMT = %x47.4D.54 ; "GMT", case-sensitive
time-of-day = hour ":" minute ":" second
; 00:00:00 - 23:59:60 (leap second)
hour = 2DIGIT
minute = 2DIGIT
second = 2DIGIT
Obsolete formats:
...