Wie kann ich mich anmelden alle request-und die header-Informationen für eine Feder @RestController @RequestMapping-Methode?

Haben wir eine Frühlings-Methode, mit der ein REST Aufruf, dass wir einige Probleme mit, je nachdem, auf welche Kunden wir verwenden (browser vs. mobile Anwendung). Wir möchten in der Lage sein zu sehen, die raw-Anforderung und-Header, aber nicht in der Lage gewesen, um herauszufinden, wie leicht tun. Das beste, was wir haben, ist das hinzufügen der HttpServletRequest unsere Parameter in der Methode und erstellen Sie eine lange Methode zum drucken der verschiedenen Teile des request-Objekts. Gibt es einen besseren Weg, wie Sie auf die debug-Protokollierung für bestimmte org.springframework.web.* Spring Klasse?

Eine überarbeitete version unserer Methode und der printRequestInfo() Methode ist:

@RequestMapping(method = RequestMethod.POST, value = "/test/{testId}")
public void doSomething(@PathVariable Long testId,
        @RequestParam(value = "someOtherParam", required = false) String someOtherParam,
        HttpServletRequest req)
{
    printRequestInfo(req);
    //...        
}

private void printRequestInfo(HttpServletRequest req) {
    StringBuffer requestURL = req.getRequestURL();
    String queryString = req.getQueryString();

    if (queryString == null) {
        logger.info("url: " + requestURL.toString());
    } else {
        logger.info("url: " + requestURL.append('?').append(queryString).toString());
    }

    logger.info( "method:" + req.getMethod());

    //print all the headers
    Enumeration headerNames = req.getHeaderNames();
    while(headerNames.hasMoreElements()) {
        String headerName = (String)headerNames.nextElement();
        logger.info("header: " + headerName + ":" + req.getHeader(headerName));
    }

    //print all the request params
    Enumeration params = req.getParameterNames();
    while(params.hasMoreElements()){
        String paramName = (String)params.nextElement();
        logger.info("Attribute: '"+paramName+"', Value: '"+req.getParameter(paramName) + "'");
    }
}
Schreibe einen Kommentar