【发布时间】:2019-05-12 07:26:48
【问题描述】:
我正在调用一个 Web 服务,它返回给我 ResponseEntity 对象。现在我在从 ResponseEntity 获取 HttpHeaders 信息后设置位置标头。
responseEntity.getHeaders().setLocation(uriBuilder.path("/empl/{id}").buildAndExpand(empl.getEmpId()).toUri());
上面的代码行抛出 java.lang.UnsupportedOperationException 因为 headers 是不可修改的。在这种特殊情况下如何设置位置标头?
【问题讨论】:
-
确保 empl.getEmpId() 返回非空值。
-
如果您从
responseEntity获得标题似乎是不可变的,请查看stackoverflow.com/a/41482673 -
@Alien 是的,它返回非空值。正如 Kruschenstein 所提到的,从 responseEntity 返回的标头是不可修改的,因为它是不可变的
-
@Kruschenstein 感谢您的评论。我认为在从 responseEntity 中提取标头信息后可以采取一种方法。您提到的链接中的解决方案是我所做的,在返回 responseEntity 之前设置标题信息
标签: spring spring-boot spring-mvc