我正在使用apache wicket的东西REST,并且在一个简单的API中...我想获取标题列表,并简单地将其显示为调试日志。
我的问题是我收到一个错误的java.util.UnknownFormatConversionException
来自代码:
@MethodMapping(value="/testSubmit", httpMethod=HttpMethod.POST)
public Object testSubmit() {
return "OK";
}到代码:
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.http.HttpHeaders;
...
@MethodMapping(value="/testSubmit", httpMethod=HttpMethod.POST)
public Object testSubmit(@RequestHeader HttpHeaders headers) {
// Display request headers here
return "OK";
}我认为问题出在来自springframework的@RequestHeader和HttpHeaders。如果我能拿到等同于这些的柳条。我不会得到这个错误。
你知道我该如何解决这些问题吗?或者是获取请求报头列表的wicketstuff等效项?
谢谢
发布于 2019-12-18 16:30:57
因为我只需要显示请求中的标头列表,所以我使用HttpServletRequest,然后调用getHeaderNames()来获取标头名称。
然后迭代标头名称以获得标头值。
在我的例子中,为了将HttpServletRequest放在wicketstuff rest中,我将其命名为:
HttpServletRequest request = (HttpServletRequest) getCurrentWebRequest().getContainerRequest();
注意:
getCurrentWebRequest()来自org.wicketstuff.rest.resource.AbstractRestResource,getContainerRequest()来自org.apache.wicket.request.Request.getContainerRequest()
public static String getHeaderInfo(HttpServletRequest request) {
StringBuilder sb = new StringBuilder();
sb.append("\n");
sb.append("\n[HTTP request headers]\n");
Enumeration<String> headerNames = request.getHeaderNames();
while (headerNames.hasMoreElements()) {
String headerName = headerNames.nextElement();
sb.append("\"");
sb.append(headerName);
sb.append("\": \"");
Enumeration<String> headers = request.getHeaders(headerName);
while (headers.hasMoreElements()) {
String headerValue = headers.nextElement();
sb.append(headerValue);
if (headers.hasMoreElements()) {
sb.append(", ");
}
}
sb.append("\"\n");
}
return sb.toString();
}因此,要显示标题信息:System.out.println(getHeaderInfo(request));
这正是我需要的,我只需要在我的调试日志中反映出来
希望这能有所帮助
https://stackoverflow.com/questions/59387095
复制相似问题