- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
今天我将桌面上一直使用的 java 从 Oracle JDK 1.7 更改为 OpenJDK 1.7。
所以我从
java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b15)
Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)
至
java version "1.7.0_65"
OpenJDK Runtime Environment (rhel-2.5.1.2.el6_5-x86_64 u65-b17)
OpenJDK 64-Bit Server VM (build 24.65-b04, mixed mode)
然后,我为我的一个项目运行了单元测试,之前运行成功的项目现在失败了。有问题的失败测试做了这样的事情:
List<HttpCookie> cookies =
HttpCookie.parse("FOO=BAR; expires=Thu, 01-Jan-2020 00:00:10 GMT");
HttpCookie cookie = cookies.get(0);
然后使用来自的值进行断言
cookie.getMaxAge();
我发现的问题是 cookie.getMaxAge() 突然总是返回 0,而不是预期的“大”值。
事实证明,我问了一个无效问题:2020 年 1 月 1 日是星期三,而不是星期四。我在单元测试中修复了这个错误(所以现在我要求输入“Wed, 01-Jan-2020”,现在可以了)。
对我来说,问题仍然是:如果“输入不太好”,“应该”采取什么行为?
我在这里看到的两种行为都有一定的验证。
显然:
这方面有规范吗?
最佳答案
来自 Oracle javadoc我们看到该字符串必须是 set-cookie ( Netscape proposal ) 或 set-cookie2 ( RFC 2965 )。您的字符串遵循 Netscape 提案。
摘自 Netscape 提案:
The date string is formatted as:
Wdy, DD-Mon-YYYY HH:MM:SS GMT
这基于 RFC 822、RFC 850、RFC 1036 和 RFC 1123,但唯一合法的时区是 GMT,并且日期元素之间的分隔符必须是破折号。
来自RFC 822 :
5.2. SEMANTICS
If included, day-of-week must be the day implied by the date specification.
所以你的字符串不是 set-cookie 字符串。
如果出现以下情况,解析方法应抛出 IllegalArgumentException:
header string violates the cookie specification's syntax, or the cookie name contains illegal characters, or the cookie name is one of the tokens reserved for use by the cookie protocol
星期几错误是语义上对规范的违反,而不是语法上的违反,因此不必引发异常。
总之,解析方法遇到错误星期几的日期时的行为尚未定义。该规范应该要么强制引发 IllegalArgumentException,要么强制忽略该问题,因为星期几是可选的冗余信息。
关于datetime - HttpCookie.parse 中的日期无效;应该有什么行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25334997/
一段时间以来,这一直是一个令人烦恼的问题,但非常零星且难以隔离。 有时,在 Web 应用程序上经过身份验证的浏览器已打开一段时间,已多次登录和退出同一 Web 应用程序,具有多个选项卡,几乎是任何浏览
HttpCookie 类文档: There are 3 HTTP cookie specifications: Netscape draft RFC 2109 - http://www.ietf.or
我从 HTTP 响应 header 中得到了一个 cookie 字符串,如下所示: name=value; path=/; domain=.g.cn; expire=... 我可以将上面的行解析为键值
我正在尝试从我的网站编写 cookie,并试图弄清楚时区对 HttpCookie.Expire 属性有什么影响。我应该路过DateTime.Now.AddDays(1)或 DateTime.UtcNo
我正在我的 ASP.NET 应用程序中创建一些 cookie。这些 cookie 在创建 10 分钟后就会过期。我遵循 MSDN 上描述的方法,如下所示: http://msdn.microsoft.
我在使用 HttpCookie 时遇到问题。 我正在构建一个电子商务,我正在尝试为我的网站设置 Cookie。 定义了三种 Cookie,如下所述: private static string coo
有没有办法为 HttpCookie 指定端口? 我在 sub.example.com 有一个站点,需要部署在 sub.example.com:81 和 sub.example.com:82。(所以同一
今天我将桌面上一直使用的 java 从 Oracle JDK 1.7 更改为 OpenJDK 1.7。 所以我从 java version "1.7.0_25" Java(TM) SE Runtime
如果将 cookie 的过期时间设置为 DateTime.Now.AddDays(-1),它什么时候过期?它显示到期日是昨天。这是代码: var rememberMeCookie = new Http
所以我很困惑,因为 msdn 和其他教程告诉我使用 HttpCookies 通过 Response.Cookies.Add(cookie) 添加 cookie。但这就是问题所在。 Response.C
我有一个基本的 SPA (react) API (net core 2.2) 设置,有 2 个环境:dev 和 prod(小项目)。 API 端有一个身份验证机制,用于检查每个包含 JWT 的请求中
我对如何制作普通版很感兴趣 HttpCookie对象放入 session 结束时过期的 cookie。我对某人不感兴趣 showing me HttpContext.Session .与普通 cook
我正在对我的用户进行身份验证,然后向他们每个人发送一个唯一的 cookie,我将存储该 cookie 到服务器端和客户端。为了向我的 API 提供一定程度的安全性,我使用该 cookie 将每个请求发
我在设置 cookie 时看到了一些奇怪的东西...... 行动: string cookieName = "foo"; string cookieValue = "bar"; //Set a coo
我正在开发一个 Web 应用程序,它是 MVC 5 + Angular JS 的混合体。 Web 应用程序中没有身份验证,匿名用户可以来询问某些服务的价格。要获得价格,用户需要回答分布在几页上的一些问
当我尝试访问 asp.net mvc 3 应用程序时,收到错误“元素“httpCookies”已被锁定在更高级别的配置中”。当我在 中添加下面的行时,就会发生这种情况部分。 这种情况发生在 Win
此代码仅记录 cookie 列表和每 1 秒哪个 cookie 已过期的 bool 值。 我使用 AVD 模拟器 API 23 运行此源代码。然后,HttpCookie.hasExpired() 仅返
我想在 ASP.NET 中使用 HttpCookie 而不是 Session。 当我在登录页面中设置 cookie 并将其重定向到下一页时,我遇到了问题。如果我尝试访问下一页中的 cookie,它会返
我正在尝试从 http cookie 中读取字符串序列化的 json 对象。字符串看起来像这样 "{\"status\": 400\054 \"code\": \"14040\"\054 \"link
意思是我创建了一个带有 .Name = "ChocolateChip"的 cookie,然后我会通过以下方式查找它:Response.Cookies["ChocolateChip"]...? 最佳答案
我是一名优秀的程序员,十分优秀!