如何在Java中获取HTTP请求标头
时间:2020-02-23 14:34:19 来源:igfitidea点击:
在本教程中,我们将看到如何在Java中获取HTTP请求标头。
有时,要打印请求标题值。
这样做是非常简单的。
我们首先需要获取请求对象,然后调用getheaderfields()上,以获取所有请求标头值。
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
...
//Get header object
private HttpServletRequest request;
...
public Map getRequestHeaderValues()
{
Map map = new HashMap();
//get header values from request object
Enumeration headerNames = request.getHeaderNames();
while (headerNames.hasMoreElements()) {
String key = (String) headerNames.nextElement();
String value = request.getHeader(key);
map.put(key, value);
}
return map;
}
}
Spring MVC:
如果我们使用的是Spring MVC,那么我们可以使用@Autowired注释来获取控制器中的请求对象。
import javax.servlet.http.HttpServletRequest;
import org.igi.theitroad.bean.Country;
import org.igi.theitroad.service.CountryService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
/**
* @author theitroad.com
*
*/
@RestController
public class CountryController {
@Autowired
private HttpServletRequest request;
CountryService countryService = new CountryService();
@RequestMapping(value = "/countries", method = RequestMethod.GET, headers = "Accept=application/json")
public List getCountries() {
Enumeration headerNames = request.getHeaderNames();
while (headerNames.hasMoreElements()) {
String key = (String) headerNames.nextElement();
String value = request.getHeader(key);
System.out.println(key+" : "+value);
}
List listOfCountries = countryService.getAllCountries();
return listOfCountries;
}
}
我们将获得如下所示的输出:
host : localhost:8080 accept : text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 connection : keep-alive cookie : JSESSIONID=822C2725DB96155EF6B37CC2A1F5E2A4 user-agent : Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.78.2 (KHTML, like Gecko) Safari/522.0 accept-language : en-us cache-control : no-cache accept-encoding : gzip, deflate

