简体   繁体   English

使用HttpServletRequest#getDateHeader()解析RFC1123日期时发生异常

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM