[英]Exception when parsing RFC1123 date with HttpServletRequest#getDateHeader()
I am trying to parse the HTTP header Date: Tue, 15 Nov 1994 08:12:31 GMT
for an HttpServletRequest with a call to request.getDateHeader("Date")
but get the following exception: 我试图解析HTTP标头
Date: Tue, 15 Nov 1994 08:12:31 GMT
来调用request.getDateHeader("Date")
的HttpServletRequest ,但得到以下异常:
java.lang.NumberFormatException: Tue, 15 Nov 1994 08:12:31 GMT
at org.mortbay.io.BufferUtil.toLong(BufferUtil.java:106)
at org.mortbay.jetty.HttpFields$Field.getLongValue(HttpFields.java:1479)
at org.mortbay.jetty.HttpFields.getLongField(HttpFields.java:720)
at org.mortbay.jetty.Request.getIntHeader(Request.java:728)
at javax.servlet.http.HttpServletRequestWrapper.getIntHeader(HttpServletRequestWrapper.java:106)
at javax.servlet.http.HttpServletRequestWrapper.getIntHeader(HttpServletRequestWrapper.java:106)
at com.google.appengine.tools.development.ResponseRewriterFilter$RequestWrapper.getDateHeader(ResponseRewriterFilter.java:417)
at com.example.ExampleServlet.doPost(ExampleServlet.java:93)
What am I doing wrong? 我究竟做错了什么? The sample date is taken directly from the HTTP specification , so I would expect it to be valid under RFC 1123. The servlet is part of an App Engine app (on development server).
样本日期直接来自HTTP规范 ,因此我希望它在RFC 1123下有效。Servlet是App Engine应用程序的一部分(在开发服务器上)。
This is a known bug in the app engine library. 这是应用引擎库中的一个已知错误 。 Here is the
getDateHeader
function at issue, and it clearly calls super.getIntHeader()
. 这是有问题的
getDateHeader
函数 ,它显然会调用super.getIntHeader()
。 It doesn't look like Google is in a hurry to fix it, unfortunately. 不幸的是,Google似乎并不急于对其进行修复。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.