是否可以更改请求方法来转发请求?

2024-03-19

我正在研究一个网关,它只允许 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(使用前将#替换为@)

是否可以更改请求方法来转发请求? 的相关文章

  • 如何将 javax.persistence.Column 定义为 Unsigned TINYINT?

    我正在基于 MySQL 数据库中的现有表创建 Java 持久性实体 Bean 使用 NetBeans IDE 8 0 1 我在这个表中遇到了一个字段 其类型为 无符号 TINYINT 3 我发现可以执行以下操作将列的类型定义为 unsign
  • @RestController 没有 @ResponseBody 方法工作不正确

    我有以下控制器 RestController RequestMapping value base url public class MyController RequestMapping value child url method Req
  • 通过SOCKS代理连接Kafka

    我有一个在 AWS 上运行的 Kafka 集群 我想用标准连接到集群卡夫卡控制台消费者从我的应用程序服务器 应用程序服务器可以通过 SOCKS 代理访问互联网 无需身份验证 如何告诉 Kafka 客户端通过代理进行连接 我尝试了很多事情 包
  • 如何在 Firebase 远程配置中从 JSON 获取值

    我是 Android 应用开发和 Firebase 的新手 我想知道如何获取存储在 Firebase 远程配置中的 JSONArray 文件中的值 String 和 Int 我使用 Firebase Remote Config 的最终目标是
  • Spring RestTemplate 使用 cookie 遵循重定向

    最近我遇到了一个问题 我需要做一个GET请求远程服务 我假设使用一个简单的 servlet 并且 RestTemplate 返回Too many redirects 经过一番调查 似乎对指定远程服务发出的第一个请求实际上只是一个 302 重
  • Spring Data JPA 选择不同

    我有一个情况 我需要建立一个select distinct a address from Person a 其中地址是 Person 内的地址实体 类型的查询 我正在使用规范动态构建我的 where 子句并使用findAll Specifi
  • 当客户端关闭连接时,Spring StreamingResponseBody 请求线程未清理

    我在控制器中有一个端点 它返回一个StreamingResponseBody 用于向客户端发送文件 其代码大致如下 RestController RequestMapping value api public class Controlle
  • 自动生成Flyway的迁移SQL

    当通过 Java 代码添加新模型 字段等时 JPA Hibernate 的自动模式生成是否可以生成新的 Flyway 迁移 捕获自动生成的 SQL 并将其直接保存到新的 Flyway 迁移中 以供审查 编辑 提交到项目存储库 这将很有用 预
  • 使用 Guice 优化注册表

    你好 今天思考了一种优化 有一些疑问 语境 我正在使用 Guice 2 进行 Java 开发 在我的网络应用程序中 我有一个转换器注册表 可以即时转换为某种类型 转换器描述如下 public class StringToBoolean im
  • 从 GitHub 上托管的 Spring Cloud Config Server 访问存储库的身份验证问题

    我在 GitHub 上的存储库中托管配置 如果我将回购公开 一切都好 但如果我将其设为私有 我将面临 org eclipse jgit errors TransportException https github com my user m
  • 在另一个模块中使用自定义 gradle 插件模块

    我正在开发一个自定义插件 我希望能够在稍后阶段将其部署到存储库 因此我为其创建了一个独立的模块 在对其进行任何正式的 TDD 之前 我想手动进行某些探索性测试 因此 我创建了一个使用给定插件的演示模块 到目前为止 我发现执行此操作的唯一方法
  • 流中的非终结符 forEach() ?

    有时 在处理 Java Stream 时 我发现自己需要一个非终端 forEach 来触发副作用但不终止处理 我怀疑我可以用 map item gt f item 之类的方法来做到这一点 其中方法 f 执行副作用并将项目返回到流中 但这似乎
  • QuerySyntaxException:无法找到类

    我正在使用 hql 生成 JunctionManagementListDto 类的实际 Java 对象 但我最终在控制台上出现以下异常 org hibernate hql internal ast QuerySyntaxException
  • JMenu 中的文本居中

    好吧 我一直在网上寻找有关此问题的帮助 但我尝试的任何方法似乎都不起作用 我想让所有菜单文本都集中在菜单按钮上 当我使用setHorizontalTextPosition JMenu CENTER 没有变化 事实上 无论我使用什么常量 菜单
  • “无法实例化活动”错误

    我的一个 Android 应用程序拥有大约 100 000 个用户 每周大约 10 次 我会通过 Google 的市场工具向我报告以下异常情况 java lang RuntimeException Unable to instantiate
  • Spring-ws:如何从没有“Request”元素的 xsd 创建 Wsdl

    尝试为客户端实现 SOAP Web 服务 我需要一个 wsdl 文件来通过soapUI 测试该服务 但正如您在下面看到的 这个 xsd 没有 Request 和 Response 方法 所有请求和响应都被定义为基本 ServiceProvi
  • Hamcrest Matchers - 断言列表类型

    问题 我目前正在尝试使用 Hamcrest Matchers 来断言返回的列表类型是特定类型 例如 假设我的服务调用返回以下列表 List
  • 泛型、数组和 ClassCastException

    我想这里一定发生了一些我不知道的微妙事情 考虑以下 public class Foo
  • 在java中使用多个bufferedImage

    我正在 java 小程序中制作游戏 并且正在尝试优化我的代码以减少闪烁 我已经实现了双缓冲 因此我尝试使用另一个 BufferedImage 来存储不改变的游戏背景元素的图片 这是我的代码的相关部分 public class QuizApp
  • Spring表单ModelAttribute字段验证避免400 Bad Request错误

    我有一个ArticleFormModel包含正常发送的数据html form由 Spring 使用注入 ModelAttribute注释 即 RequestMapping value edit method RequestMethod PO

随机推荐

  • 如何禁用颤动开关

    在我的帮助屏幕中 我有这个开关 其目的是不执行任何操作 只是按原样显示 但我现在遇到的问题是 即使它没有做任何事情 用户也可以拖动开关 所以我试图弄清楚如何禁用它 以便没有人可以拖动开关按钮 return Container child C
  • C# 中的激活函数列表

    我可以在数学中找到激活函数列表 但在代码中却找不到 所以我想如果应该有这样一个列表的话 这将是代码中放置这样一个列表的正确位置 从这两个链接中算法的翻译开始 https en wikipedia org wiki Activation fu
  • 将进度条改为双倍

    进度条 ProgressBar pb ProgressBar findViewById R id progressbar pb setProgress 0 int k int max pb setMax k int j int cost p
  • 使用reinterpret_cast访问类似“struct {double, int}”的对象

    通过访问对象reinterpret casted 指针和相关的 UB 已经在这里进行了广泛的讨论 阅读问题和答案后 我仍然不确定是否正确使用 POD 类型的未初始化内存 假设我想 模仿 struct double d int i 通过手动为
  • Meteor 1.0 - 为什么“构建应用程序”花费的时间比以前长得多?

    所以我刚刚更新到Meteor 1 0 在本地开发应用程序时 每当我更新任何 js 文件时 构建应用程序都需要大约 15 秒以上的时间 在此期间控制台会显示 正在构建应用程序 尔格 这是 1 0 中的新行为吗 过去需要 1 2 秒才能看到对
  • 无法使用 Maven“mvn package”构建 Guava

    我刚刚阅读了 Guava 并查看了它的源代码 但不知道如何构建它来使用 我使用 mvn package 构建了 jar 文件 但它生成了 Guava GWT 错误 ERROR Failed to execute goal on projec
  • 为什么我在运行简单的 Spring Boot 应用程序时总是收到状态为“404”的 Whitelabel 错误页面

    我的控制器 Controller RequestMapping ComponentScan com spring EnableAutoConfiguration public class HomeController Value frame
  • 为什么 Gradle 不在编译/运行时类路径中包含传递依赖项?

    我正在学习 Gradle 的工作原理 但我无法理解它如何解决项目传递依赖关系 现在 我有两个项目 projectA 它对外部库有一些依赖项 项目 仅对项目有一个依赖项 无论我如何尝试 当我构建projectB时 gradle都不在proje
  • 使用 WebKit 的简单 Swift Cocoa 应用程序:上传图片不起作用

    我决定制作自己的 FB 聊天应用程序 只显示https messenger com https messenger com on a WebView在尝试其他 免费增值 应用程序后 My ViewController swift只需几行代码
  • 如何使用 Powershell 作为我的 trapmp-encoding-shell?

    首先我启动 eshell 然后输入命令cd plink
  • 在函数式编程中实现双向计数器?

    我正在尝试了解一些函数式编程基础知识 因此 通过使用高阶函数 我可以创建一个可以递增的计数器 function counter start var count start return function return count var m
  • 在元数据文档中找不到 WsTrust 端点

    我正在关注这个tutorial https github com Azure Samples active directory java native headless了解用户成功登录后如何获取令牌 到目前为止我已经完成的步骤 我已经使用以
  • 如何 git add 仅匹配模式的行?

    我正在使用 git 跟踪一些配置文件 我通常会进行互动git add p但我正在寻找一种方法来自动添加与模式匹配的所有新 修改 删除行 否则 我将花费很长时间来完成所有交互式拆分和添加 git add有文件名的模式匹配 但我找不到有关内容的
  • MS ACCESS 与 LAN 上的桌面应用程序

    在不使用共享文件夹的情况下通过 LAN 托管 MS ACCESS 和桌面应用程序的最佳方式是什么 您可以使用一些终端服务器 TS 例如微软的终端服务器 这是 ms windows 操作系统服务器版本的一项功能 还有其他可用的 TS Citr
  • R - 以 1 为增量的循环函数

    我有以下功能 position tab lt filter Tall Time point 2 gt group by Object gt summarise minimum min Pixel pos maximum max Pixel
  • 子菜单的 javascript 悬停功能

    我在尝试理解 javascript 方面还很陌生 我一直在收集多个示例 试图找出我做错了什么 但无法让它正常工作 在某一时刻 我曾使用过 onmouseover mouseout 但它只适用于其中一个菜单 我确信这是我忽略的简单事情 但任何
  • 如何获取jqGrid当前的搜索条件?

    我需要获得与 jqGrid 在 GET POST search 参数上传递的完全相同的东西 我怎样才能做到这一点 为了结束这个问题 我做了以下几行 grid getGridParam postData filters 这样我就得到了当我们对
  • AngularJS 禁用 ngClick

    在 AngularJS 中 有什么办法可以制作一个ng click依赖于布尔值 例如 我希望以下文本 Click 可点击 但是only当某些范围属性 例如 rootScope enableClick is true div Click di
  • 从套接字读取时如何检测客户端何时完成发送请求?

    我现在正在编写一个 http 服务器 但从套接字读取时遇到问题 我的问题是inputStream来自客户端的数据永远不会结束 它会一直读取 直到客户端关闭 我知道客户端发送http请求后并不会立即关闭与服务器的连接 我怎样才能退出while
  • 是否可以更改请求方法来转发请求?

    我正在研究一个网关 它只允许 GET 请求 而其背后的 REST 端点能够接受各种方法 POST PUT DELETE OPTIONS 因此 我尝试将请求方法作为参数传递 并有一个过滤器 它用正确的方法转发请求 从我在规范中看到的 只允许转