问题标签 [spring-resttemplate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
125 浏览

spring - HttpHeaders 在 spring5 更改中发生更改,导致 API 失败 400

现在我正在将我们的 spring 应用程序从 4 迁移到 5。我在 spring web 模块上遇到了特别的问题

spring-web-4.3.21.RELEASE.jar 到 spring-web-5.1.13.RELEASE.jar

我注意到 HttpHeaders 类的变化。在 spring-web-4.3.21.RELEASE.jar

HTTP标头在哪里

现在在 Spring 5- 这更改为

现在标题从 - {Accept=[application/json], Content-Type=[multipart/form-data;boundary=8HFYfdj_y58sNxrSdXenwlIQDsYiXS50], Content-Length=[51024]}

到 [接受:“应用程序/json”,内容类型:“multipart/form-data;charset=UTF-8;boundary=lqBw1IeG3PhU9oYKiHGbhABo2SWZ6lBR”,内容长度:“37353”]

我搜索了很多发现一个类似的问题,这似乎更密切相关- 升级到 Spring 5 破坏了 RestTemplate MultipartFile upload

有谁知道如何处理这个问题。

0 投票
1 回答
624 浏览

java - Spring boot RestTemplate.exchange 使用 String.Class 对象给出空结果集

我正在使用 Spring Boot 版本 2.1.3 并尝试使用 RestTemplate 进行休息调用。请检查下面的代码。

执行关于代码时,我在终端中得到以下输出。

[INFO ] 2020-07-01 18:12:42.906 [scheduling-1] ConsumingRest - Result output is: {"result":[{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}]}

问题是我得到空输出,而如果我用 Postman 运行相同的 API,我会得到数据。谁能帮我弄清楚我在哪里犯了错误?

这是我使用 Postman 获得的相同 JSON 数据。

问候,丹麦

0 投票
2 回答
578 浏览

spring-boot - Spring Boot Actuator Shutdown Endpoint with Spring RestTemplate Client:错误 415 不支持的媒体类型

我试图运行 Spring Boot 微服务测试,本文对此进行了解释: https ://blog.codecentric.de/en/2017/02/integration-testing-strategies-spring-boot-microservices-part-2/

在这些测试中,Spring Boot 应用程序在每次测试之前和之后以编程方式启动和停止,使用 Spring RestTemplate Client 和 Spring Boot Actuator “shutdown”端点。

不幸的是,此代码在 Spring Boot 2.3.1 中不起作用并返回“错误 415 不支持的媒体类型”

测试后必须在管理控制台中手动终止应用程序。

完整的源代码可以在 GitLab 上找到: https ://gitlab.com/dfeingol/springboot-testing-tips/-/tree/master/atdd

这是一个非常有趣的测试策略,也是在测试中使用 Spring Boot Docker 映像的绝佳替代方案。

可惜文章和源码都很老了,用的是Spring Boot 1.4.0

有谁知道如何使用 Spring Boot Actuator “shutdown”端点和 Spring RestTemplate Client 正确关闭 Spring Boot 2.3.1 应用程序?

0 投票
2 回答
160 浏览

java - HTTPS 响应状态码能否在 Spring 集成中的其他类中可用

我需要在拦截器中从 ClientHttpResponse 接收到 response.statusCode(),应该在我创建的 testSubmitPaymentResponseVO 对象中可用,以便可以相应地进行错误处理。但是我不知道在哪里以及如何将响应传递给我的 POJO testSubmitPaymentResponseVO。

拦截器代码:

0 投票
0 回答
150 浏览

get - GET 请求通过 PostMan 成功,但通过 Spring RestTemplate Exchange 方法调用提供 308 永久重定向

GET 请求包含类似于以下内容的 JSON 有效负载: { "customeId" : "A123", "Status" : "Assigned", "StartDate" : "2020-07-18", "EndDate" : "2020-07-20 ", "FetchLimit" : "10" } 我正在使用多值映射来添加这些输入以及标题(内容类型、接受、相关 ID)。相同的请求有效负载通过 Postman 提供响应,但是当我使用 RestTemplate.exchange(URL, HttpMethod.Get ,entity, Response.class) 进行 GET 调用时,收到的响应为 308 PERMANENT REDIRECT。对解决方案的任何想法都会很棒!TIA ###下面的代码片段####

0 投票
3 回答
2307 浏览

java - curl 请求 - 更改为 RestTemplate - 无正文错误

我有一个 curl 命令,它工作正常,但是当我在 RestTemplate 中尝试它时,我遇到了错误。

卷曲:

弹簧休息模板

例外:

那么如何正确地将上面的 curl 转换为 RestTemplate 以避免服务器和没有正文错误。卷曲命令工作正常。

0 投票
0 回答
170 浏览

java - Spring Boot 与 AWS IoT api 的连接得到错误 403 被禁止

我正在使用 AWS 文档示例创建签名:

我得到的错误是:

我该如何解决这个问题?

0 投票
1 回答
911 浏览

java - 将包含日期字段的对象作为 JSON 发送到 API,时区似乎已更改,时间“更改”

我正在开发 2 个在它们之间进行通信的 Spring Boot 项目(第一个项目调用在第二个项目上定义的 POST API 并向其发送 JSON 格式的 DTO 对象。目前这两个项目都在同一台机器上运行,因此它们应该有相同的时区(我想......)

我在正确发送日期格式时遇到问题。我将尝试解释我在做什么以及我面临什么问题。

在第一个项目中,我有这个DTO对象:

如您所见,我有这个带有此注释的 timeStamp 字段,用于转换 JSON 中的字段:

它还应该设置默认时区

然后进入第一个项目的一个类,我有这个方法执行对第二个项目中定义的 API 的 POST 请求:

如您所见,我正在通过这一行执行 API 调用:

使用调试器timeStamp字段值似乎是正确的,实际上这个字段值是:

如您所见,此日期字段的值为timeStamp=Sat Oct 17 06:00:14,它是预期值。

然后调用第二个项目中定义的 API,在这里我得到了这个字段值的奇怪行为。

在第二个项目中,调用的 API 是:

如您所见,获得的有效负载在此方法参数中:

问题是我得到了这样的东西:

如您所见,该字段的值为:Time_Stamp=2009-10-17 13:00:14其中日期部分(2009-10-17)是正确的,但时间部分完全错误,实际上获得的时间部分是13:00:14而不是预期的 06:00:14(存在于已发送对象中的那个)。

现在据我所知 6:00 PDT 等于 13:00 GMT 但为什么我有这个问题?我需要收到的日期在同一时区(或者我错过了什么?)

为什么当它被接收到Map<String, Object> jsonTrainInfo时区似乎改变了?

怎么了?我错过了什么?我该如何尝试解决此问题?我快疯了

0 投票
0 回答
154 浏览

java - RestTemplate GET 调用给出不完整的响应

我正在将我的应用程序与第三方应用程序集成,并且要求我必须调用他们的 API。因此,有这个 GET 调用,当提供适当的标头和参数并随后调用时,它会返回一些 JSON 数据。现在显然我已经在邮递员中尝试过它并且它可以正常工作。但是,当我使用 Spring 的 RestTemplate(使用交换方法)在 Java 中进行相同的调用时,我得到的 JSON 响应是不完整的。基本上,它给了我响应,就像缺少的部分从未有过响应一样。例如,在 Postman 中,响应如下所示:

但在 Java 中,响应如下所示:

响应不完整。另外,经过分析,我发现有这个响应头:content-length,它在 Postman 中的值为 933,在 Java 中为 840。有什么办法可以解决这个问题?

0 投票
1 回答
318 浏览

java - RestTemplate GET 调用给出 422

我正在与第三方应用程序集成,这个问题是在与他们的一个 GET API 集成时出现的。API 有一些标头和参数,在 Postman 中运行良好。但是,当用 Java 形成并使用 RestTemplate(交换方法)执行时,相同的请求会给出 422 不可解析的实体。我可能在哪里出错,可以做些什么来解决这个问题?