可修改请求 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
中包含属性
我正在创建一个简单且轻量级的反向 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
中包含属性