我正在研究一个网关,它只允许 GET 请求,而其背后的 REST 端点能够接受各种方法(POST、PUT、DELETE、OPTIONS)。因此,我尝试将请求方法作为参数传递,并有一个过滤器,它用正确的方法转发请求。从我在规范中看到的,只允许转发请求而不进行任何修改:
request.getRequestDispatcher(route).forward(request, response)
有什么解决方法吗?
注意:重定向对我来说不是一个选项。
如果您有一个处理 Restful 服务的 Rest Servlet(通常是这种情况),您可以扩展它并覆盖service
方法。在那里你可以调用doPost(..)
, doPut(..)
等等,具体取决于您想要的参数。默认实现HttpServlet
uses request.getMethod()
.
您可以做的另一件事(不太可取)是让您的过滤器向端点发出新请求,使用URL.openConnection
(org apache commons httpcomponents),并将该内部请求的结果流式传输回客户端。您可以在那里指定请求方法。
不管怎样,我认为你应该尝试克服网关的限制,因为它会让你处于一个非常尴尬的境地。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)