可修改请求 headers 和 com.sun.net.httpserver.httpserver

Modifiable request headers with com.sun.net.httpserver.httpserver

我正在创建一个简单且轻量级的反向 HTTP 代理并使用 com.sun.net.httpserver.httpserver

代理完成其工作后,它应该在请求 headers 中添加一些 headers 并将请求转发给实际服务,但是当我在请求 headers 中添加任何内容时,我得到 UnsupportedOperationException 因为它正在使用 UnmodifiableHeaders.

谁能告诉我如何配置 com.sun.net.httpserver.httpserver 以使用可修改的 headers?

或者有没有其他更好但超轻量级的 HTTP 服务器支持这个?

java.lang.UnsupportedOperationException: unsupported operation
    at jdk.httpserver/sun.net.httpserver.UnmodifiableHeaders.add(UnmodifiableHeaders.java:65)
    at com.example.SampleFilter.lambda$addValuesInRequestHeader(SampleFilter.java:80)

没有办法 add/edit headers 但我们可以使用 httpExchange.setAttribute() 和 httpExchange.getAttribute() 方法在过滤器之间跳转时传递附加信息。

为了将 headers 添加到我们要转发给服务的请求中,我们从原始请求创建一个新的 http 请求,并在 headers

中包含属性