我有一个接收HTTP请求的微服务(Java Spring Boot),然后通过HTTP调用REST API调用另一个服务。被调用的服务返回HTTP状态201(无响应正文),但我需要返回HTTP 200和响应正文。
我使用WebClient调用其他服务,对于201状态,我使用的是bodyToMono(Void.class)。那么,如何为我的微服务的客户端返回HTTP 200响应体呢?最佳做法是什么?另外,如何为调用返回HTTP 201的外部服务的服务编写组件测试?
更新:当前代码如下所示:
webClient.builder())
.post()
.uri("/employee")
.body(Mono.just(employee), Employee.class)
.retrieve()
.onStatus(status -> status.equals(HttpStatus.NOT_FOUND), response -> Mono.just(new NotFoundException("404 occurred", HttpStatus.NOT_FOUND.name())))
.bodyToMono(Void.class)
.block();
谢啦
如果我理解你的问题。我想这样解决。
WebClient
.builder()
.build()
.post()
.uri("/employee")
.exchange()
.flatMap(response -> {
return response
.mutate()
.body("success")
.build()
.bodyToMono(String.class);
});
我想在Spring Boot Controller方法中返回一条没有@ResponseBody注释的纯文本消息。 通常,当我返回一个字符串时,会出现一个错误。(实际上,它会查找html文件。) 当我使用此代码时,这将返回一个错误 错误解决模板[这是一个纯文本],模板可能不存在或可能无法访问任何配置的模板解析程序org.thymeleaf.exceptions.TemplateInputExc001
问题内容: 我使用mysql 5.7 我想将联接表的结果串联到单列中。我使用包裹在函数中的函数。这是查询 列包含来自联接表的数据。数据已正确检索,但问题是列未转换为正确的JSON。 如您所见,最后有点“切”。 我也尝试过,但是现在它不能转换为正确的数组。它看起来像字符串太大,不适合列。有办法解决吗? 更新 问题必须出在不适合列的st大小中。我尝试从联接表中选择较少的列,并且它可以正常工作。也许有一
我得到错误:com.microsoft.sqlserver.jdbc.SQLServerException:驱动程序无法通过使用安全套接字层(SSL)加密建立到SQL服务器的安全连接。错误:“SQL服务器没有返回响应。连接已关闭。” Hibernate配置: application.properties: pom.xml: SQLServerException: openssl客户端连接服务器:1
我使用改型来连接数据库,但GSON似乎没有解析数据。正在返回JSON,但没有创建响应体,因此我无法与数据交互。有什么想法吗? 我的URL添加 okhttp日志
通过Eureka服务器注册/发现Spring Boot微服务,试用Spring Cloud Gateway。该设置运行良好,客户端可以通过网关调用发现的服务,没有问题,这是很好的。 现在,我试图测试一个场景,其中客户机调用服务(通过网关),目前没有可用的实例来为该调用提供服务(即服务关闭)。当我们测试这个场景时,默认行为是客户机得到一个500的内部服务器错误响应。最简单的方法是什么来改变这个默认行
我想知道当服务器端发生错误时返回是否正确(错误详细信息将包含在响应主体中)。 例子: 我们正在发送 这是不是正确的行为?我们是否应该将状态代码更改为200以外的值?