Java GetInHeader()返回NumberFormat异常

Java GetInHeader()返回NumberFormat异常,java,servlets,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 Acc

我发出了一个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(“用户代理”)
。这次我得到了一个
NumberFormatException
,上面写着“请求头” 无法转换为整数。API和servlet规范也这么说。我搜索了有关此的更多信息以获得一些工作示例,但没有得到任何所需的结果。因此,如何使用此方法?我使用的是ApacheTomcat 7.0.25


提前感谢。

我不明白,用户代理头是一个字符串,您可以像
String userAgent=request.getHeader(“用户代理”)

还是我没有抓住你问题的重点?

我不明白,用户代理头是一个字符串,你可以像
String userAgent=request.getHeader(“用户代理”)
还是我没有抓住你问题的重点?

带有键“User\u Agent”的标题包含混合日期类型值(字符串和整数的组合),在你的例子中是:User-Agent:Mozilla/5.0(Windows NT 6.1;rv:12.0)Gecko/20100101 Firefox/12.0

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

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

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

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

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

除了普通方法外,HttpServletRequest接口中还有一个名为“getIntHeader”(“String”)的方法。这将返回整数。请检查servlet API以了解更多信息,我知道,但引用API“将指定请求头的值返回为int”。用户代理是一个字符串,因此您应该尝试我在回答中建议的方法。有一个方法称为“GetInHeader”(“String”)在HttpServletRequest接口中,与普通方法不同。这将返回整数。请检查servlet API以了解更多信息,我知道,但引用API“将指定请求头的值返回为int”。用户代理是一个字符串,所以你应该尝试一下我在答案中的建议。谢谢你的回答。我有一个误解,它可以应用于所有标题,直到我阅读你的答案。谢谢你的回答。我有一个误解,它可以应用于所有标题,直到我读你的答案。