我正在尝试获取请求的http-accept标头,当我从
获取标头时,我得到不同的值req.getHeader("Accept") + req.getHeader("Accept-Encoding") + req.getHeader("accept-language")
'<?php echo $_SERVER['HTTP_ACCEPT'].$_SERVER['HTTP_ACCEPT_ENCODING'].$_SERVER['HTTP_ACCEPT_LANGUAGE']; ?>
结果是:
*/*gzip,deflate,sdchen-US,en;q=0.8
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8gzip,deflate,sdchen-US,en;q=0.8
他们为何如此不同?
我弄错了吗?
答案 0 :(得分:1)
PHP正在返回所有请求参数,而您的Java HTTP客户端只返回一个。
HttpServletRequest
方法提供了getHeaders(String)
返回指定请求标头的所有值
Enumeration
个String
个对象。{/ p>
所以使用它。
注意Java结果如何(拆分为您正在进行的String
连接的帐户)
*/* */
^ the last 'Accept' header value
gzip,deflate,sdch
^ the 'Accept-Encoding'
en-US,en;q=0.8
^ the 'Accept-Language'
我不确定为什么它不会对其他标题执行此操作。
如果您的输出更容易阅读,那么从一开始就会更加清晰。不要只是像这样连接字符串。使用某种分隔符。