当前位置: 首页 > 知识库问答 >
问题:

如何从响应实体头中筛选和删除标准http头?

章琛
2023-03-14

我在spring boot中使用rest模板调用一些restendpoint,如下所示:

ResponseEntity<String> responseEntity = restTemplate.exchange(url, httpMethod, entity, String.class);

然后我从响应实体中读取所有标题,如下所示:

HttpHeaders httpHeaders = responseEntity.getHeaders();

但是HttpHeaders包含这么多的头,从中我只想读取自定义头,我们不知道自定义头的名称,基本上我只想删除所有标准HTTP头并获取所有剩余的头。

我们如何删除所有标准HTTP标头?

除了从HttpHeaders类的元素中创建所有已知标头的数组之外,还有其他方法可以获取所有已知超文本传输协议标头的列表吗?

共有2个答案

陆绍辉
2023-03-14

类HttpHeaders定义了所有标准的HTTP头键,所以您需要做的是提供一种方法来过滤出您期望的自定义头

沃阳曜
2023-03-14

Map类有一个remove()方法。您可以迭代所有已知头的列表,删除其中的每个头。剩下的将是您的自定义标题。

或者,您可以在HttpHeaders上使用toCommaDelimitedString方法,然后遍历该方法,删除所有已知的头。

 类似资料:
  • 我想删除MVC中的http响应头。 HTTP/1.1 404找不到缓存-控件:私有内容-类型:text/html;charst=UTF-8服务器:Microsoft-IIS/8.0X-Powered-by:ASP.NET日期:Mon,23 Feb 2015 12:43:58 GMT内容-长度:4898连接:Keep-Alive 我使用以下代码删除连接、X-Powered-By、Server、Cac

  • 我有一个应用程序,它使用camel-jetty、camel-cxf来公开REST api,并在apache karaf(fuse esb)中运行。由于安全原因,我需要从API响应中删除'server'标头。我从camel exchange头中删除了头,但它仍然以Jetty(7.6.7.v20120910)的形式在api响应中返回。如何从API响应中删除标头?

  • 我想从(RubyonRails)响应中删除一些头文件 报头响应: HTTP/1.1 200正常 日期:2013年6月6日星期四14:42:26 GMT 连接:保持活动状态 X运行时间:0.01900 内容类型:文本/纯文本;字符集=utf-8 缓存控制:专用,最大年龄=0,必须重新验证 服务器:WEBrick/1.3.1(Ruby/1.8.7/2012-10-12) 内容长度:281 Etag:“

  • 我试图在节点中添加一个行为类似于permessage deflate的web套接字扩展。我的问题是直到点节点发回它与Sec WebSocket扩展的握手:x-webkit-deflate-frame之前,一切都正常。来自Safari的请求包含了这一点,但如果我在响应中包含它,尝试告诉Safari继续使用压缩,它就永远不会在网络选项卡中显示为标题。我已经通过Wireshark确认我们在回复中发送了它

  • 问题内容: 在发送http消息之前,是否可以使用javascript / XmlHttpRequest删除一些特定的HTTP标头? 我使用的是专有浏览器,因此无法使用特定于浏览器的解决方案来实现。 例如,我要在发送消息之前删除标题“ Authorization” 问候 问题答案: 假设您的浏览器支持XmlHttpRequest对象,则可以使用XmlHttpRequest对象的setRequestH

  • 问题内容: 好的,因此我可以使用访问HTTP ajax响应标头 但似乎没有日期,尽管它在那里: 而代码只显示了这一点: 这是ajax调用: 有没有办法可以在响应头中获取日期? 问题答案: 这有帮助: