如果我的Java REST应用程序中出现异常,我希望记录导致HTTP请求的各种信息。我可以通过上下文注入获得请求的URI和HTTP标头
@Context private UriInfo uriInfo; @Context private HttpHeaders headers;
但是我怎样才能获得HTTP方法(GET、PUT ...)呢?
83qze16e1#
我穿泽西的。不知道你是否适合,但是......
import javax.servlet.http.HttpServletRequest; @Context final HttpServletRequest request
Request类具有方法getMethod()。它返回使用的HTTP方法。
Request
getMethod()
jyztefdp2#
您通常将其余方法限制为一个http方法
@GET @Produces("text/plain") public String getClichedMessage() { // Return some cliched textual content return "Hello World"; }
gtlvzcf83#
泽西岛是无关紧要的(下面是得票最多的答案)。Java Servlet API的HttpServletRequest类具有getMethod()方法,该方法返回HTTP方法的名称(GET, POST, PUT等)。但是你并不总是需要它,例如,如果你在servlet中,你有doGet,doPost方法。
GET, POST, PUT
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //method is POST }
受保护的void doGet(HttpServletRequest请求,HttpServletResponse响应)抛出ServletException,IOException { //方法是GET }但您确实需要它,例如,在筛选器中:
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException { String method = ((HttpServletRequest) request).getMethod(); }
说到REST,不同的REST框架可以提供不同的方法来获取HttpServletRequest对象。
3条答案
按热度按时间83qze16e1#
我穿泽西的。不知道你是否适合,但是......
Request
类具有方法getMethod()
。它返回使用的HTTP方法。jyztefdp2#
您通常将其余方法限制为一个http方法
gtlvzcf83#
泽西岛是无关紧要的(下面是得票最多的答案)。
Java Servlet API的HttpServletRequest类具有
getMethod()
方法,该方法返回HTTP方法的名称(GET, POST, PUT
等)。但是你并不总是需要它,例如,如果你在servlet中,你有doGet,doPost方法。
受保护的void doGet(HttpServletRequest请求,HttpServletResponse响应)抛出ServletException,IOException { //方法是GET }
但您确实需要它,例如,在筛选器中:
说到REST,不同的REST框架可以提供不同的方法来获取HttpServletRequest对象。