gpt4 book ai didi

java - 可以检索完整的 header 或 header 的大小吗?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:20:09 25 4
gpt4 key购买 nike

Java servlet 是否可以提取响应 header 的请求 header 的全文,而不是单独执行 getHeader() 方法?或者,是否可以获得这些 header 的完整字节大小?

我问这个的原因是因为我想跟踪 servlet 和发送请求的设备之间的数据使用情况,并且由于将从不同设备发送的大量请求,我希望能够获得一个仅 header 就用了多少字节的准确表示。

提前致谢。

最佳答案

API 不提供通过一次调用获取所有 header 的方法 - 检查 Javadocs:

http://download.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html

这是一个示例,说明如何获取所有 header (无需繁琐的空值检查)。

private MultiValueMap getAllHeaders(HttpServletRequest request) {
MultiValueMap allHeaders = new MultiValueMap();
List<String> headerNames = Collections.list((Enumeration<String>)request.getHeaderNames());
for (String headerName : headerNames) {
allHeaders.putAll(headerName, Collections.list((Enumeration<String>) request.getHeaders(headerName)));
}

return allHeaders;
}

一旦您使用了 Java Servlet 模型,您将无法在不重新构造它的情况下获得以字节为单位的 header 大小(即:迭代 getAllHeaders 并附加 <header name>: <header value> ),您还需要添加样板 GET HTTP 1/1.1等等。如果您绝对需要 Java 解决方案,那绝对可行,但我觉得您应该考虑将此逻辑从您的 Java 应用程序中推出并放入代理中。

关于java - 可以检索完整的 header 或 header 的大小吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5162265/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com