在 Feign 客户端中使用 spring 表单编码器时,请求正文未正确编码和隐藏

2024-01-05

我已经为 spring open feign 添加了必要的依赖项,如中提到的https://github.com/OpenFeign/feign-form https://github.com/OpenFeign/feign-form并遵循上述 feign-client 的配置。

每当我发送内容类型为 application/x-www-form-urlencoded 的发布请求时。请求正文未正确生成。

电子邮件客户端.java

@FeignClient(name = "email", url = "localhost:3000",
     configuration = EmailClientConfiguration.class)

public interface EmailClient {

    @PostMapping(value = "/email/send")
    ResponseDto sendEmail(@RequestBody Map<String, String> requestBody);
        
}

这是我的客户端配置类:

public class EmailClientConfiguration  {
    
    @Bean
    public RequestInterceptor requestInterceptor(Account<Account> account) {
        return template -> {
             template.header("Content-Type", "application/x-www-form-urlencoded");
        };
    }
    
    @Bean
    public OkHttpClient client() {
        return new OkHttpClient();
    }
    
    @Bean
    Logger.Level feignLoggerLevel() {
        return Logger.Level.FULL;
    }
    
    @Bean
    public Decoder feignDecoder() {
        return new JacksonDecoder();
    }
    
    @Bean
    public Encoder feignFormEncoder () {
        return new SpringFormEncoder(new JacksonEncoder());
    }
}
    
    
Map<String, String> requestBody = new HashMap<>();
requestBody.put("username", "xyz");
requestBody.put("email", "[email protected] /cdn-cgi/l/email-protection");
requestBody.put("key", "xxx");

当我在接口中调用 sendEmail 方法时,请求者标头设置正确,但请求正文发送为

{"{\n  \"key\" : \"xxx\",\n  \"email\" : \"[email protected] /cdn-cgi/l/email-protection\",\n  \"username\" : \"xyz\"\n}"

有人可以帮忙解决这个问题吗?为什么请求体是这样发送的。而且请求主体也没有隐藏在服务器端,尽管内容类型是application/x-www-form-urlencoded.


添加消耗后效果很好。

@FeignClient(name = "email", url = "localhost:3000",
     configuration = EmailClientConfiguration.class)

public interface EmailClient {

    @PostMapping(value = "/email/send", consumes = "application/x-www-form-urlencoded")
    ResponseDto sendEmail(@RequestBody Map<String, String> requestBody);
    
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Feign 客户端中使用 spring 表单编码器时,请求正文未正确编码和隐藏 的相关文章

  • 在 Java 中重新抛出异常而不丢失堆栈跟踪

    在 C 中 我可以使用throw 语句重新抛出异常 同时保留堆栈跟踪 try catch Exception e if e is FooException throw Java中有没有类似的东西 不会丢失原始堆栈跟踪 catch Whate
  • Logback线程池

    我使用 Logback 进行日志记录 我有一个问题 我将 AsyncAppender 与 ConsoleAppender 结合使用 当应用程序启动时 它会创建具有 logback 线程名称的线程池 所有日志记录工作均由 AsyncAppen
  • Java 密钥库 - 以编程方式从密钥库文件中选择要使用的证书

    我有一个 java 密钥库文件 其中包含多个客户端证书 我希望在 Java 应用程序中仅选择其中一个证书来连接到服务 有没有一种简单的方法可以做到这一点 到目前为止 我找到解决方案的唯一方法是使用原始密钥库文件中的客户端证书详细信息 通过其
  • 是否可以使用 Spring 2.5 在不同的窗口选项卡中维护不同的会话(用户)?

    我们有一个要求 即在浏览器窗口的不同选项卡中支持不同的用户 我们如何在 Spring 2 5 中实现这一目标 该应用程序基于用户 用户将拥有自己的代理和文章 内部用户应该能够同时在不同选项卡中登录不同的用户帐户并操作其数据 任何帮助深表感谢
  • 如何获取JavaFX的版本号?

    如何在运行时找出我正在使用哪个版本的 JavaFX 简单的方法之一就是简单地阅读javafx properties文件位于您的 JAVA HOME jre lib目录 我现在安装了 Java 1 7 u9 与之捆绑的 JavaFX 是 v2
  • AJAX(原型/java)在执行期间获取部分状态更新

    这部分模仿了AJAX 原型 php 在脚本执行期间获取部分状态更新 https stackoverflow com questions 800997 ajax prototype php getting partial status upd
  • 是否有适用于 Java 的 Harel Statechart DSL 工具?

    我正在寻找一种能够理解 DSL 的工具 在其中我可以定义生成 Java 代码的状态图 或者 DSL 中的状态图可以按原样运行 该工具最好用 Java 编写 并且必须根据 Harel 状态图 或等效的 UML 2 状态机 的定义支持超级状态和
  • 如何为连接表中的其他属性创建多对多 Hibernate 映射?

    我需要一个多对多的休眠映射需要 3 个连接 我试图找到一个没有中间实体的解决方案 例如LecturerCourse 我的数据库中的讲师和课程表之间存在多对多关系 一门课程可以由多名讲师讲授 而一名讲师可以讲授多门课程 我事先存储了课程 但是
  • ActiveMQ 桥连接器到 WebSphereMQ 而不使用 XML 配置

    我想在嵌入式代理中创建一个代理来代理 ActiveMQ 和 WebSphere MQ 之间的连接 我知道 activemq 中存在网络连接器来执行此操作 代理到代理 但我不知道如何配置它以连接到 WebSphere MQ 在网络上进行搜索时
  • 对 Java Servlet 进行单元测试

    我想知道对 servlet 进行单元测试的最佳方法是什么 只要内部方法不引用 servlet 上下文 测试内部方法就不是问题 但是测试 doGet doPost 方法以及引用上下文或使用会话参数的内部方法呢 有没有办法简单地使用经典工具 例
  • 无法解析 ListView 适配器中的 getSystemService 方法

    我正在研究约翰霍顿的Android 编程初学者 目前正在尝试创建一个笔记应用程序 霍顿刚刚介绍ListViews 但是 我遇到了麻烦adapter class public class NoteAdapter extends BaseAda
  • Java RCP/SWT - Eclipse RCP 中的“Android Toast like”对话框

    有谁知道是否存在某些弹出窗口的实现 例如 Android TOAST 通知是以下内容的一部分迈林公共区 https projects eclipse org projects mylyn commons 要集成它们 请添加Mylyn Com
  • 在java中迭代日期

    我需要遍历一系列日期 不确定如何在 for 循环中获取第二天 我在用java util Date So plusDays 1 不能在 for 循环中用于获取下一个日期 Used date1 new Date date1 getTime 10
  • Java Swing 组件的命名约定(前缀)

    在 Java 中使用 Swing 进行编程时 我想到的一个问题是 它是 Swing 组件的推荐还是 官方 最常用的命名约定 前缀 例如 尽管其他人可能更喜欢其他命名约定 但这就是我当前正在使用的 JTextField 的 txt JButt
  • 使用 Spring 的 SimpleNamingContextBuilder 的应用程序如何知道在其目录中搜索资源?

    使用 Spring 的应用程序如何SimpleNamingContextBuilder http static springsource org spring docs 3 0 x api org springframework mock
  • 有没有办法使用 SauceLabs 的 RemoteWebDriver 禁用 CORS 检查

    问题说明了一切 我正在尝试在 SauceLabs 上执行一些硒测试 该测试加载一个发出跨域请求的网页 我在想是否有一种方法可以通过代码以独立于平台的方式禁用 CORS 使用时Chrome驱动程序 Chrome组合禁用cors questio
  • 将项目导入 Eclipse 后出现“必须重写超类方法”错误

    任何时候我必须将我的项目重新导入到 Eclipse 中 如果我重新安装了 Eclipse 或者更改了项目的位置 几乎全部我的重写方法的格式不正确 导致错误 该方法必须重写超类方法 值得注意的是 无论出于何种原因 Android 项目中方法参
  • Eclipse 错误:“设置构建路径”遇到错误

    我正在使用一个名为 jtwitter 的 API 它有一个 jar 文件 jtwitter jar 我一直在使用它并使用 git 维护它 我把代码托管在github上 有些天 我没有碰过它的代码 今天 当我克隆我的 git repo 时 实
  • 如何使用二叉树中的递归来完成回溯

    我正在尝试插入一个二进制节点 我的代码很复杂 没有希望挽救它 所以我计划重写它 基本上我没有考虑回溯 也没有仔细考虑算法 我正在尝试使用顺序遍历插入二进制节点 但我不明白应该如何回溯 D B E A C F 我如何搜索根 D 的左子树 然后
  • Java中精确的时间测量

    Java 提供了两种获取当前时间的方法 System nanoTime and System currentTimeMillis 第一个给出的结果以纳秒为单位 但实际精度比这要差得多 许多微秒 JVM 是否已经为每台特定机器提供了最佳的价值

随机推荐

  • 无法在 iOS 上创建托管对象上下文

    我创建了一个非核心数据项目 我现在想使用核心数据 在构建阶段 我将二进制文件与 CoreData framework 链接起来 在我的应用程序委托方法中 我想手动创建一个托管对象上下文 如下所示 NSManagedObjectContext
  • 如何恢复使用策略=我们的合并?

    我正在使用一个存储库 其中几周前执行了合并 我们刚刚发现它使用了 strategy ours标志 它应该使用 strategy option ours 标志 因此不会对 HEAD 应用任何更改 但是 我们需要应用这些更改 Git 已经识别出
  • python中的正交距离回归:返回值的含义

    我正在关注正交距离回归 http docs scipy org doc scipy reference odr html id1拟合因变量和自变量均带有误差的数据的方法 我用一条简单的直线拟合数据 我的模型是y ax b 现在 我可以编写代
  • 如何为版本 2 和版本 3 设置不同的 PYTHONPATH?

    假设我将 PYTHONPATH 设置为 bashrc如下 export PYTHONPATH PYTHONPATH ver2packages 当我检查 Python 3 中的 python 路径时 python3 gt gt gt impo
  • 更改完整日历中单元格的颜色

    我需要更改 arshaw 完整日历的单元格颜色 我的要求是 公司提供的假期列表的 td 单元格应该有相同的颜色 员工休假列表的 td 单元格应该具有相同的颜色 我们如何实现这一点 我能够改变事件的颜色 但不能改变单元格的颜色 另外 如果我们
  • 如何以编程方式更改 Android 谷歌地图 v2 中的语言

    我有一个应用程序 您可以在其中更改设置中的区域设置 目的是能够在应用程序内拥有与系统区域设置不同的区域设置 我也希望能够设置地图的语言 我只能找到 设置手机的系统语言 之类的答案 这不是我要找的 有没有办法以编程方式或从 xml 设置地图的
  • Matlab聚类编码-绘制散点图

    我有一年期间每日 每年的能源消耗数据集 我想显示该数据集的散点图 分为我期望存在的四个集群 由于四个季节的差异 我知道 matlab cluster 函数可以做到这一点 但我的统计数据非常生疏 我希望得到一些指导来确定哪个函数最好使用 Th
  • 如何在 Mac 版“Visual Studio Code”中取消链接/从 Git 存储库注销

    一直在玩这个微软编辑器 相当不错 但缺少一些最基本的 UI 位 不知道如何从我之前登录的 Git 存储库中取消链接 注销 退出并重新打开该软件不起作用 而且 没用说 我有很多我使用的存储库 任何想法 在侧面板的底部 有一个帐户图标 通常位于
  • 简单的CSS固定标题

    使以下页眉成为固定页眉的最简单方法是什么 http presentationtube com header php http presentationtube com header php我应该移动标题中的菜单元素吗 templatemo
  • 根位于 arr[0] 的二叉堆有什么好处

    我正在数组上写一个二进制堆arr 除叶节点外 每个节点都有两个子节点 根可以位于arr 0 or arr 1 接受的答案在为什么在数组实现的堆中索引 0 未被使用 https stackoverflow com questions 2290
  • TFS 到 TFS 迁移工具 - 域问题

    第三方为我们开发了一些应用程序 并一直使用 MS Team Foundation Server 2008 进行源代码控制 我的公司最近设置了 TFS 2008 环境 我们正在尝试将源代码从第 3 方开发人员 TFS 迁移到我们的 TFS 机
  • SQL 不断收到 ON UPDATE CASCADE 错误

    大家好 我正在使用这个 ON UPDATE CASCADE 功能 但我仍然无法让它工作 我的第一张桌子 CREATE TABLE Stab Stab id int not null Sprache VARCHAR2 2000 Vorname
  • Swift 保留周期和闭包

    我尝试做很多研究来理解保留周期 但我似乎在我的例子中找不到任何东西 我确实知道 如果我将属性设置为闭包 则会发生保留周期 并且需要使用弱或无主 但我有两个例子 我想知道它们是否正确完成 提前致谢 我已经尝试查看它们是否已经在 stackov
  • jest.toHaveBeenCalledWith 中松散匹配一个值

    我有一个分析跟踪器 它只会在 1 秒后调用 并且带有一个对象 其中intervalInMilliseconds 持续时间 值为not确定性的 我该如何使用jest toHaveBeenCalledWith测试对象 test pageStat
  • 有没有办法在非模板类中定义模板成员?

    假设我有一个名为的类模板Compute 和另一个名为Function A使用成员函数模板 template
  • Laravel 4 - 显示带有旧数据输入以及数据库信息的编辑表单

    我正在为我的应用程序制作一个编辑表单 我想知道是否有人可以告诉我如何将数据库中的数据获取到我的文本字段中 我可以根据用户的点击找到我需要编辑的记录 如果我执行以下操作 我可以显示信息 value letter gt subject 但是 我
  • C# WPF 即使在最小化时也捕获 keydown

    我想知道如何让我的应用程序捕获任何 keydown keyup 即使应用程序表单最小化也是如此 假设程序最小化 然后用户按 A 将出现一个弹出控件 请注意 我的程序可以运行 但在最小化时不能运行 谢谢 你需要的是HotKeys 没有内置的
  • 从父框架中的 iframe 打开锚标记

    给定以下 HTML iframe 中的锚标记是否可以定位父窗口 div div iframe pageview html 内容 a href http www google com link a 你想要的target属性 https dev
  • 移动应用商店分析选项(Apple、Android、OVI 等)? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有人有移动应用商店分析软件 服务的经验吗 我目前只为 iOS 开发 所以这是我主要感兴趣的 但是我想知道
  • 在 Feign 客户端中使用 spring 表单编码器时,请求正文未正确编码和隐藏

    我已经为 spring open feign 添加了必要的依赖项 如中提到的https github com OpenFeign feign form https github com OpenFeign feign form并遵循上述 f