0

我发出了一个 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.

提前致谢。

4

2 回答 2

3

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

如果您尝试将此值作为 Integer 获取,则肯定会得到 NumberFormatException (因为标头值也包含非数字值)。

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

于 2012-05-10T07:20:56.547 回答
0

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

于 2012-05-10T06:54:58.557 回答