问题标签 [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 回答
117 浏览

java - RestTemplate ,有没有办法在检查响应正文后重试成功的请求?

有没有办法重试成功的请求?所有示例都指向当 RestTempalte 发生故障时的重试行为。我想发送一个请求,等待响应并检查响应中的一个字段,如果它不是预期的状态,则重试请求。这可以使用 RestTemplate 来完成吗?我唯一知道的是做一个线程睡眠并再次调用该方法。我想避免这种情况。

0 投票
1 回答
166 浏览

spring - RestTemplate 使用括号和斜线获取请求

我使用下面的 URL 和 RestTemplate 来获取数据 http://localhost:8161/console/jolokia/exec/org.apache.activemq.artemis:broker="0.0.0.0"/listQueues/{"field":"", "操作":"","值":""}/1/100

我的代码如下所示

从上面的代码我得到以下错误

有什么方法可以通过 RestTempate 在 URL 中使用 / 传递 {} 吗?

我尝试了以下解决方案,但它不起作用。

https://stackoverflow.com/questions/43917408/resttemplate-request-with-braces

https://stackoverflow.com/questions/41267993/how-to-properly-escape-a-url-to-be-used-in-resttemplate-that-has-flower-brackets?noredirect=1&lq=1

任何人都可以在这方面帮助我。

0 投票
1 回答
815 浏览

java - 使用自定义证书和密钥调用 RestTemplate API

我正在通过需要 SSL 证书的 RestTemplate 调用外部 API。外部 API 提供商已经为我提供了证书文件 (company.crt) 及其密钥文件 (company.key)。在 Postman 中添加证书、密钥和密码时,我能够成功调用 API。但是当我在 SpringBoot 项目中使用 RestTemplate 调用时,即使在添加 SSLContext 之后,我也会收到错误消息。

我遵循的步骤:

使用 openssl 从 company.crt 和 company.key 文件创建了 company.p12 存储文件:

openssl pkcs12 -export -name servercert -in company.crt -inkey company.key -out company.p12

使用 Keytool 将 company.p12 转换为 company.jks 存储文件:

keytool -importkeystore -destkeystore company.jks -srckeystore company.p12 -srcstoretype pkcs12 -alias companycert

在将 company.jks 放在 SpringBoot 项目的资源文件夹中之后,在 application.properties 文件中创建了配置:

然后,我为 RestTemplate 创建了一个配置:

调用外部 API:

通过 RestTemplate 调用 API 后的错误:

0 投票
1 回答
545 浏览

spring - 找不到适合响应类型的 HttpMessageConverter

org.springframework.web.client.UnknownContentTypeException:无法提取响应:没有为响应类型 [class net.minidev.json.JSONObject] 和内容类型 [application/json] 找到合适的 HttpMessageConverter

endpointUrl 也返回 JSONObject 所以不明白为什么不匹配

0 投票
2 回答
252 浏览

java - 使用 RestTemplate getForObject 时无法捕获错误

我正在使用 RestTemplate 从我的另一个 Web 服务调用我的 Web 服务的运行状况执行器端点,以查看 Web 服务是否已启动。如果 web 服务启动,一切正常,但当它关闭时,我收到错误 500,“内部服务器错误”。如果我的网络服务已关闭,我会尝试捕获该错误以便能够处理它,但我遇到的问题是我似乎无法捕获该错误。

我尝试了以下方法,但它从未进入我的任何一个捕获部分

我也试过这样做,但结果相同。它似乎永远不会进入我的错误处理程序类。

关于如何从另一个 Web 服务调用我的 Web 服务的健康执行器并捕获该 Web 服务是否关闭的任何建议?

0 投票
1 回答
546 浏览

spring - 从 Spring Boot 调用安全的 Rest api

我有一个 spring boot 应用程序,我需要调用一个安全的外部 api 来检索数据。

在下面我遵循的步骤:

  1. 我使用用户名和密码生成令牌

  2. 我将令牌保存在临时变量中

  3. 我在每个 resttemplate 调用中使用它

我的问题是:

  • 保留生成的令牌并将其用于每个连接的用户的最佳方法是什么?
  • 我们可以配置 spring security 来管理对外部 api 的调用吗?
0 投票
1 回答
325 浏览

java - RestTemplate Request Header 发生错误,对于 spring 4.1.3 太大

如何在我的 Spring Web 应用程序中解决这个问题?它在 JDK 1.7、Spring 4.1.3 RELEASE 和 WebLogic 10 中运行,但是当我们升级 JDK 1.8、Spring 4.1.3 RELEASE 和 Weblogic 12.2 时它失败了。我们可以增加RestTemplate. 请告诉我

请找出以下错误

0 投票
1 回答
1545 浏览

java - 已解决 [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Illegal character ((CTRL-CHAR, code 31))

这是我的应用日志中的完整错误消息

我正在使用带有以下标头的邮递员向我的 Web 应用程序发送 POST 请求输入是一个带有 json 的 gzip。在邮递员上,它返回 400 Bad Request

这就是我上传 gzip 文件的方式

这是我的 POST 方法。我有一个自定义的 gzip 拦截器类。

0 投票
1 回答
1200 浏览

multithreading - 什么会导致使用 RestTemplate 在 Spring Boot Restapi 中过时的连接

我读到“过时的连接是服务器断开连接但客户端不知道的结果。” 但是我试图找出如果我使用基于 SpringBoot RestTemplate 的应用程序(进一步使用来自 Apache 的 PoolConnectionManager)并从我的应用程序调用另一个 API 的情况下怎么可能?在这种情况下,我的应用程序是客户端,而我正在调用的应用程序充当服务器。如果我点击该应用程序,并且我正在调用的 api 接收到请求,但在完全填充请求之前不知何故崩溃了。在这种情况下,我肯定会在最后得到例外。而且我很确定,如果 PoolConnectionManager 必须关闭该连接。那我怎么能有过时的连接?

0 投票
1 回答
2141 浏览

spring - 在 @Async 方法中通过 Spring RestTemplate 调用 Rest API

据我所知,Spring RestTemplate是同步的并阻塞线程,直到 Web 客户端收到响应,而 Spring WebClient是异步且非阻塞的。

但是,如果我们在@Async注释方法中使用RestTemplate调用 API 会怎样?

它会阻止@Async创建的新线程吗?

最后,您对 Rest API 的异步调用有什么建议(没有WebClient,因为我使用的是早于 5 的 Spring 版本)。谢谢