Http request.getIntHeader()返回NumberFormat异常

时间:2012-05-10 06:49:13

标签: java servlets

我发出了一个Http请求,这就是请求标头的样子:

GET /unni/servlets/servlet/HelloWorldExample HTTP/1.1
Host: localhost:8700
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20100101 Firefox/12.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Cache-Control: max-age=0

然后,我刚刚使用request.getIntHeader("User-Agent")。这次我得到一个NumberFormatException说“请求标头” 不能转换为整数'。这就是API和servlet规范也说的。我搜索了更多关于这个以获得一些实际的例子,但没有得到任何想要的结果。所以,我怎么能用这个方法?我正在使用Apache Tomcat 7.0.25

提前致谢。

2 个答案:

答案 0 :(得分:3)

带有“User_Agent”键的标题包含混合日期类型值(String和Integer的组合),在您的情况下是:User-Agent:Mozilla / 5.0(Windows NT 6.1; rv:12.0)Gecko / 20100101 Firefox / 12.0

如果你试图将这个值作为Integer得到,你肯定会得到NumberFormatException(因为标题值也包含非数字值)。

您只能将request.getIntHeader()应用于包含纯数值的标头。 您可以使用数值定义自己的标题键,并使用request.getIntHeader()。

进行检索

答案 1 :(得分:0)

我不明白,User-Agent标头是一个字符串,你可以像扫描一样检索它  String userAgent = request.getHeader("User-Agent");
或者我错过了你的问题的重点?