从 Spring 服务器请求获取字符串主体

2024-07-04

我试图从请求正文中获取简单的字符串,但不断收到错误

Handler:

@RestController

public class GreetingHandler {


    public Mono<ServerResponse> hello(ServerRequest request) {

        String contentType = request.headers().contentType().get().toString();

        String body = request.bodyToMono(String.class).toString();

        return ServerResponse.ok().body(Mono.just("test"), String.class);



    }
}

Router:

@Configuration
public class GreetingRouter {

    @Bean
    public RouterFunction<ServerResponse> route(GreetingHandler greetingHandler) {

       return RouterFunctions
                .route(RequestPredicates.POST("/hello"),greetingHandler::hello);


    }
}

请求有效,我可以看到内容类型(plainTexT),并且我在邮递员中得到响应,但我无法获取请求正文。我遇到的最常见错误是 MonoOnErrorResume。如何将请求正文转换为字符串?


您必须阻止才能到达实际的正文字符串:

String body = request.bodyToMono(String.class).block();

toString()只会给你你的字符串表示Mono object.

这是块的作用:https://projectreactor.io/docs/core/release/api/reactor/core/publisher/Mono.html#block-- https://projectreactor.io/docs/core/release/api/reactor/core/publisher/Mono.html#block--

Update:

我不知道在 http 线程上阻塞是不可能的(不再?)。 这是您的改编版本hello控制器方法,在控制台上打印“Hello yourInput”,并在响应中返回该字符串。

        public Mono<ServerResponse> hello(ServerRequest request) {
            Mono<String> requestMono = request.bodyToMono(String.class);
            Mono<String> mapped = requestMono.map(name -> "Hello " + name)
                .doOnSuccess(s -> System.out.println(s));
            return ServerResponse.ok().body(mapped, String.class);
        }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 Spring 服务器请求获取字符串主体 的相关文章

  • Java Web 应用程序的关闭钩子

    我需要在 java web 应用程序停止或 tomcat 停止时保存一些数据 如何才能做到这一点 编辑 如果我使用 jvm shutdown hook 有什么缺点吗 使用一个实现的类ServletContextListener https
  • 测试最终字段的初始化安全性

    我试图简单地测试 JLS 保证的最终字段的初始化安全性 这是为了我正在写的一篇论文 但是 根据我当前的代码 我无法让它 失败 有人可以告诉我我做错了什么 或者这只是我必须一遍又一遍地运行然后在一些不幸的时机看到失败的事情吗 这是我的代码 p
  • 使用 Java 打开 Arduino 上的 LED

    我安装了 Java 串行 RXTX 库并正确设置了 Arduino 我什至已经启动并运行了示例代码 但我似乎无法理解如何访问不同的 Arduino 引脚以打开 LED 等 如何使用 OutputStream 或任何其他方式访问引脚 我是否需
  • 在 ant 中定义 Main-Class 来捆绑 jar 的混乱

    我正在尝试使用 Amazon Mechanical Turk API 构建一个 jar 文件 SDK 附带了一个 helloworld 文件 我试图将其打包作为健全性检查 它位于此处 http aws amazon com code SDK
  • Selenium2 中的 FirefoxDriver 是否有经过验证的 mouseOver 解决方法?

    我在用着硒Java 2 0b3 我有这个代码 WebDriver driver new InternetExplorerDriver Selenium seleniumDriver new WebDriverBackedSelenium d
  • GWT - 找不到入口点类

    我最近开始开发另一个 GWT 模块 因此 我创建了一个包 其中包含所有新类和一个实现新入口点的特定类 我将 gwt xml 修改为新的入口点 当我编译时 出现以下错误 GWT Compiling client side code WARNI
  • Java自动将集合转换为参数数组?

    我知道Java 数组参数语法可以接收数组作为参数 或者只是传递给方法的许多参数 然而 我注意到它对于集合也是如此 public static void main String args Collection objects new Arra
  • HBase 无法在 Windows 上以独立模式启动

    我下载了HBase 1 0 1在我的 Windows 机器上 无法启动它 我收到以下错误消息 C Users admin Downloads hbase 1 0 1 gt bin start hbase cmd Error Could no
  • 为什么 Stream 没有 toList() 方法?

    使用 Java 8 流时 获取一个列表 从中创建一个流 执行业务并将其转换回来是很常见的 就像是 Stream of 2 1 2 5 filter n gt n gt 0 map n gt n n collect Collectors to
  • 如何安装Slick2d?

    您好 我正在尝试使用 LWJGL 库和 Slick2D 游戏库创建一个游戏 但是当我尝试运行它时出现错误 这是我的代码 package test import org newdawn slick AppGameContainer impor
  • 使用文件服务 URL 从 blobstore 删除文件

    在我的应用程序 GAE 上的 GWT 中 我们将存储在 blobstore 上的服务 URL 存储在数据库中 当用户选择这些文件之一并单击 删除 时 我们需要从 blobstore 中删除该文件 这是我们的代码 但它根本没有删除文件 pub
  • Hibernate 对数据库的查询

    我对休眠对数据库执行的查询量有疑问 这是我在进行简单选择时对数据库的查询日志 使用 Mysql 5 1 111125 7 18 30 27 Query SET autocommit 0 27 Query SELECT session tx
  • Freemarker、PDF、页眉/页脚和分页符

    Freemarker 的一个常见用途是生成 PDF 不幸的是 我必须生成一个包含很多页面的pdf 并且 他们 要求我添加包含一些信息的页眉和包含 第2 60页 等内容的页脚 在网上搜索我找到了如何创建宏模板 但它只共享一些常见标签 如css
  • ClassLoader.getResourceAsStream 如何工作?

    我用 maven 创建了一个 jar 文件 当我打开这个罐子时 我可以找到以下内容 my jar text1 txt folder some other stuff 当我在 Eclipse 中运行此代码片段时 打印出 text1 txt 的
  • Eclipse 创建 Java 虚拟机失败

    我正在使用 eclipse 开发 android 应用程序 它总是进展顺利 但今天它出现了问题 当我尝试打开 Eclipse 时 它 向我显示此消息 Failed to create the java virtual machine Err
  • 使用 v8::Locker 的正确方法是什么?为什么必须使用它?

    我正在尝试使用 NDK 将 v8 嵌入到 Android 应用程序中 我有一个看起来像这样的 JNI 模块 未显示 JNI 映射代码 include
  • 使用 Lucene 提取英语单词词干

    我正在 Java 应用程序中处理一些英文文本 我需要对它们进行词干处理 例如 从文本 amenities amenity 中我需要获取 amenit 该函数如下所示 String stemTerm String term 我找到了 Luce
  • 如何调节日志指令随时间产生的打印输出量?

    如何将程序日志打印输出限制为 Y 秒内最多 X 个打印输出 使用 java util logging 进行服务器端编程 我的代码有很多信息 警告和错误语句 例如 s logger logp Level WARNING myClassName
  • 避免 xjc 生成的代码出现编译器警告

    我的根本问题是如何从 未经检查的泛型类型 Eclipse 编译器警告中受益 但问题视图中没有这些警告列表 这些警告被 xjc 从 xsd 文件生成的 java 类的噪声污染 通过 maven jaxb2 插入 我读过其他地方 我可以忽略每个
  • 为什么 List.contains() 在 Collections Java 中将 Object 作为参数 [重复]

    这个问题在这里已经有答案了 The java util List contains Object o 方法需要Object作为参数并在内部使用Object equals Object o 如上所述here http docs oracle

随机推荐

  • Excel,运行后保存并关闭

    下面的脚本运行后如何保存 脚本来自 Powershell 磁盘使用情况报告 https stackoverflow com questions 27663165 powershell disk usage report erroractio
  • 如何使用 TCPDF 将字体嵌入到 PDF 中?

    我尝试使用 TCPDF 其代码如下 require once SERVER DOCUMENT ROOT tcpdf tcpdf php pdf new TCPDF PDF PAGE ORIENTATION PDF UNIT PDF PAGE
  • AVAssetResourceLoaderDelegate 未被调用

    我一直在尝试在AVAssetResourceLoaderDelegate协议但它似乎从未被调用 我已经验证一切都发生在主线程上 从创建AVURLAsset 创建AVPlayerItem 创建委托 并将委托队列设置到主线程 我正在尝试流式传输
  • 如何在Python中确定gzip压缩文件的内容长度?

    我有一个很大的压缩文件 我想知道内容的大小而不解压缩它 我试过这个 import gzip import os with gzip open data file as f f seek 0 os SEEK END size f tell 但
  • Symfony 4 表单文件上传字段不显示 Bootstrap 4 主题的选定文件名

    使用 Symfony 4 2 5 我制作了一个带有 FileType 文件上传字段的表单 如下所述上传文件 https symfony com doc current controller upload file html 我使用了 Boo
  • PreAuthorize 注释不适用于球衣

    我正在尝试使用 Spring 安全注释来保护球衣服务 但没有任何运气 我已将此部分添加到 web xml 中
  • 根据 TypeScript 中的查找类型限制通用键类型

    我正在开发一个带有两个类型参数的函数 T and K T延伸一个Record类型和K是第一种类型的密钥 有没有一种方法可以根据其查找类型来限制键类型 T K in T 我有以下类型 type FormValue string number
  • PDO中使用持久连接有什么缺点

    在 PDO 中 可以使用以下方法使连接持久化PDO ATTR PERSISTENT属性 根据 php 手册 持久连接不会在脚本结束时关闭 而是 当另一个脚本请求连接时 会被缓存并重新使用 相同的凭据 持久连接缓存允许您 避免每次建立新连接的
  • python-logstash 不工作

    我有一个elasticsearch集群 ELK 和一些节点使用filebeat将日志发送到logstash 最近我添加了一个新的应用程序服务器 它使用以下命令将日志发送到我的logstashpython logstash 我的logstas
  • 在C中使用math.h sqrt函数[重复]

    这个问题在这里已经有答案了 阅读 math h 的文档 似乎我所要做的就是包含 math h 并使用包含的数学函数 例如 sqrt 问题是当我尝试在程序中使用 sqrt 时出现以下错误 我尝试了 math sqrt 但这也不起作用 知道我做
  • UIDatePicker 在 iOS 9 中无法正常显示

    我没有使用自动布局 这就是 UIDatePicker 在 iOS 9 上我的应用程序中的显示方式 选择器在 iOS 8 中看起来完美无缺 但问题仅存在于 iOS 9 中 知道如何解决此问题 P S 使用 auto布局目前对我来说不是一个解决
  • 为什么异步 XMLHttpRequest 优于同步请求? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 是否可以暂停流以便可以通过 RPC 调用恢复它?

    我正在尝试在 Corda 中实现以下用例 FlowA 已通过 PartyA 调用startFlowDynamic FlowA 创建部分签名的交易并通过 PartyB 调用 FlowBsendAndReceive 人类用户现在应审查并手动批准
  • 在 PHP 中组合数组

    尝试学习 PHP 中的数组 为简洁起见 发布了片段 HTML 表单在这里 p What are your favorite type of cookies p
  • 如何在 Titanium 中向 TableView 部分追加一行?

    我正在使用 Titanium 开发 iPhone 应用程序 并且需要将一行附加到特定的表格视图部分 https developer appcelerator com apidoc mobile 1 0 Titanium UI TableVi
  • 如何让标签来回滚动一个单词?

    我想出了让标签将单词滚动到一侧的想法 然后更改单词并滚动回另一侧 如下所示 ping ping ping ping ping ping ping ping ping ping ping ping pong pong pong
  • Heroku 的静态 IP 地址(不是 Proximo)

    有没有一种方法可以为 Heroku 服务器获取一个静态 IP 地址 我正在尝试集成各种需要 IP 地址的 API 由于 Heroku 的服务器设置 您永远不会拥有一台具有静态 IP 的服务器 相反 您的 IP 是动态的 我研究过像 Prox
  • 为什么Map有loadFactor而List没有呢?

    当用 Java 创建 Map 或 List 时 它们的默认初始容量都是 10 它们的容量会随着新元素的增加而增长 但是 List 仅在添加第 11 个元素时才会增长 而 Map 在添加第 8 个元素时已经增长 发生这种情况是因为 Map 有
  • WorkManager 的 doWork() 为 OneTimeWorkRequest 多次调用

    我才刚刚开始探索WorkManager在我的应用程序中 我的应用程序大部分都是离线的 因此所有数据都使用 room db 存储在本地 一旦设备连接到网络 我想将本地数据同步到服务器 然后获取最新数据并再次同步本地数据库 这是我的doWork
  • 从 Spring 服务器请求获取字符串主体

    我试图从请求正文中获取简单的字符串 但不断收到错误 Handler RestController public class GreetingHandler public Mono