Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ApacheWicketStuff REST获取请求头列表_Java_Wicket_Wicketstuff - Fatal编程技术网

Java ApacheWicketStuff REST获取请求头列表

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

我正在使用ApacheWicket的东西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";
}
我认为问题在于
@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();
}