Java ApacheWicketStuff REST获取请求头列表
我正在使用ApacheWicket的东西REST,在一个简单的API中。。。我想获得标题列表,并将其显示为调试日志 我的问题是我得到一个错误Java ApacheWicketStuff REST获取请求头列表,java,wicket,wicketstuff,Java,Wicket,Wicketstuff,我正在使用ApacheWicket的东西REST,在一个简单的API中。。。我想获得标题列表,并将其显示为调试日志 我的问题是我得到一个错误java.util.UnknownFormatConversionException 从代码: @MethodMapping(value="/testSubmit", httpMethod=HttpMethod.POST) public Object testSubmit() { return "OK"; } 编码: import org.spri
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";
}
我认为问题在于@RequestHeader
,HttpHeaders
,它们来自springframework。
如果我能得到这些的wicketstuff等价物。。。我不会得到这个错误
关于如何修复这些或wicketstuff等价物以获取请求头列表,有什么想法吗
谢谢因为我只需要在请求中显示标题列表,所以我使用了
HttpServletRequest
然后调用getHeaderNames()
来获取标题名称
然后迭代标题名称以获取标题值
为了在wicketstuff rest中获取HttpServletRequest,在我的例子中,我将其命名为:HttpServletRequest请求=(HttpServletRequest)getCurrentWebRequest().getContainerRequest()代码>
注:
getCurrentWebRequest()
来自org.wicketstuff.rest.resource.AbstractRestResource
,getContainerRequest()
来自org.apache.wicket.request.request.getContainerRequest()
公共静态字符串getHeaderInfo(HttpServletRequest){
StringBuilder sb=新的StringBuilder();
某人附加(“\n”);
sb.append(“\n[HTTP请求头]\n”);
枚举headerNames=request.getHeaderNames();
while(headerNames.hasMoreElements()){
字符串headerName=headerName.nextElement();
某人加上“\”;
某人附加(头名);
某人附加(“\”:\”);
枚举头=request.getHeaders(headerName);
while(headers.hasMoreElements()){
字符串headerValue=headers.nextElement();
某人附加(headerValue);
if(headers.hasMoreElements()){
某人加上(“,”);
}
}
某人追加(“\”\n”);
}
使某人返回字符串();
}
因此,要显示标题信息:
System.out.println(getHeaderInfo(请求))代码>
这正是我需要的,我只需要在调试日志中反映出来
希望这有帮助,因为我只需要显示请求中的头列表,所以我使用了HttpServletRequest
然后调用getHeaderNames()
来获取头名称
然后迭代标题名称以获取标题值
为了在wicketstuff rest中获取HttpServletRequest,在我的例子中,我将其命名为:
HttpServletRequest请求=(HttpServletRequest)getCurrentWebRequest().getContainerRequest()代码>
注:
getCurrentWebRequest()
来自org.wicketstuff.rest.resource.AbstractRestResource
,getContainerRequest()
来自org.apache.wicket.request.request.getContainerRequest()
公共静态字符串getHeaderInfo(HttpServletRequest){
StringBuilder sb=新的StringBuilder();
某人附加(“\n”);
sb.append(“\n[HTTP请求头]\n”);
枚举headerNames=request.getHeaderNames();
while(headerNames.hasMoreElements()){
字符串headerName=headerName.nextElement();
某人加上“\”;
某人附加(头名);
某人附加(“\”:\”);
枚举头=request.getHeaders(headerName);
while(headers.hasMoreElements()){
字符串headerValue=headers.nextElement();
某人附加(headerValue);
if(headers.hasMoreElements()){
某人加上(“,”);
}
}
某人追加(“\”\n”);
}
使某人返回字符串();
}
因此,要显示标题信息:
System.out.println(getHeaderInfo(请求))代码>
这正是我需要的,我只需要在调试日志中反映出来
希望这对您有所帮助您可以获取头公共对象testSubmit(@RequestHeader(“Accept Encoding”)字符串编码){//Display request headers here return“OK”;}我需要请求中的所有头,我可以通过HttpServletRequest
获取头名称列表。。并迭代此名称以获取标题值。您可以获取标题公共对象testSubmit(@RequestHeader(“Accept Encoding”)字符串编码){//Display request headers here return“OK”}我需要请求中的所有标题,我可以通过HttpServletRequest
然后getHeaderNames()获取它
获取标题名称列表。。并迭代这些名称以获取标题值。
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();
}