首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache WicketStuff REST获取请求标头列表

Apache WicketStuff REST获取请求标头列表
EN

Stack Overflow用户
提问于 2019-12-18 15:13:28
回答 1查看 199关注 0票数 1

我正在使用apache wicket的东西REST,并且在一个简单的API中...我想获取标题列表,并简单地将其显示为调试日志。

我的问题是我收到一个错误的java.util.UnknownFormatConversionException

来自代码:

代码语言:javascript
复制
@MethodMapping(value="/testSubmit", httpMethod=HttpMethod.POST)
public Object testSubmit() {
    return "OK";
}

到代码:

代码语言:javascript
复制
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的@RequestHeaderHttpHeaders。如果我能拿到等同于这些的柳条。我不会得到这个错误。

你知道我该如何解决这些问题吗?或者是获取请求报头列表的wicketstuff等效项?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2019-12-18 16:30:57

因为我只需要显示请求中的标头列表,所以我使用HttpServletRequest,然后调用getHeaderNames()来获取标头名称。

然后迭代标头名称以获得标头值。

在我的例子中,为了将HttpServletRequest放在wicketstuff rest中,我将其命名为:

HttpServletRequest request = (HttpServletRequest) getCurrentWebRequest().getContainerRequest();

注意:

getCurrentWebRequest()来自org.wicketstuff.rest.resource.AbstractRestResourcegetContainerRequest()来自org.apache.wicket.request.Request.getContainerRequest()

代码语言:javascript
复制
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));

这正是我需要的,我只需要在我的调试日志中反映出来

希望这能有所帮助

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59387095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档