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

spring-boot - 如何为 RestTemplate 交换方法编写 JUnit 测试

如何为以下类编写 Mockito JUnit 测试?这是我的代码:

请帮忙

0 投票
1 回答
3718 浏览

java - 如何在 Spring Boot 休息模板中使用 .pfx 证书和密码调用安全休息 api?

我需要从我的 spring boot 应用程序中调用一个外部安全的 rest api(ssl enabled)。邮递员可以使用 .pfx 证书和密码访问外部 api。现在我想通过在每个请求上附加 .pfx 文件和密码来使用 rest 模板调用外部 api。

我不知道如何使用 pfx 证书通过 ssl 进行休息模板调用。任何帮助将不胜感激。

0 投票
1 回答
71 浏览

spring-boot - 如何使用resttemplate对url进行编码,在查询参数中包含特殊字符

使用 RestTemplate 在查询参数中包含特殊字符的 URL 时出现错误。

我的网址是这样的

有人可以帮我如何使用 RestTemplate 对这种类型的 URL 进行编码。当我通过浏览器或邮递员点击时,此 URL 工作正常。

0 投票
0 回答
578 浏览

spring - Spring boot RestTemplate 关闭连接以获取 NULL 响应导致 ConnectionPoolTimeoutExceptions

我们有一个 spring boot 应用程序,它对一堆后端进行 RESTFul 调用,其中一个有时返回空响应,并且我们观察到在这些实例期间连接没有释放,因为 RestTemplate 类中的这段代码:

有没有办法在响应为空或出错时释放连接或使用内容?

编辑添加导致错误的代码:

0 投票
1 回答
860 浏览

java - TestRestTemplate HttpHostConnectException:连接到 localhost:8082 [localhost/127.0.0.1] 失败:连接被拒绝

我只是从https://github.com/eugenp/tutorials/tree/master/spring-resttemplate克隆源代码,无法在givenFooService_whenCallHeadForHeaders_thenReceiveAllHeaders()本地执行测试。

我收到了下一个异常

有关存储库的附加信息https://www.baeldung.com/spring-boot-testresttemplate

奇怪的是教程示例无法正常工作。

0 投票
1 回答
207 浏览

java - RestTemplate 尝试捕获

我正在使用下面的 Java(Spring 2.0)代码从 webService 读取 ResponseEntity:

但是,如果 myUrl Web 服务返回 HttpStatus.BAD_REQUEST (400) ,这不会分配给 myResponse 并且会引发错误,因此没有 ResponseBody 并且我需要将请求包装在 try catch 块中。这是正确的还是有办法解决这个问题?此外,这是否意味着 myUrl Web 服务永远不应有意(以编程方式)将 myResponseObj 的 HttpStatus 设置为 HttpStatus.BAD_REQUEST?因此,即使 myRequestObj 包含错误数据,myUrl webService 仍应将响应状态设置为 200 的值,即 HttpStatus.NO_CONTENT。欢迎就如何正确执行此操作提出任何意见。

0 投票
0 回答
1271 浏览

java - WebClient 返回空响应的问题

我正在做一个项目,直到现在一直在使用org.springframework.web.client.RestTemplate 我最近了解到这个类将被弃用以支持异步 org.springframework.web.reactive.function.client.WebClient框架。现在我非常赞成这一点,因为我的应用程序在等待来自 RestTemplate (GET) 调用的响应时遇到了长时间的延迟(此时我可能正在做数据库的事情)。
我现在遇到的问题是,如果我拨打如下电话:

当我进行后续调用时:
System.out.println(call.block());
我得到了预期的输出(填充的 Json 对象的字符串版本)。
但是,如果我将之前的调用更改为(我想做的!):

当我这样做时:
System.out.println(call.block());
我只是得到{}而不是填充的 JsonObject

所以看起来bodyToMono()没有完成“我”的预期

当我使用 RestTemplate 时,有一种方法可以使用模板注册序列化程序(尽管这不是必需的JsonObject),这对 WebClient 也有必要吗?如果是这样,你怎么做?
我将不胜感激。

谢谢

账单

注意我不确定这是否有任何相关性,但我正在访问的其余端点确实有 IP 限制,所以如果以某种方式WebClient更改原始 IP,这可能会产生一些影响。虽然我本以为它会更像4**某种东西,但我没有看到任何这些!或者可能是媒体类型问题,因为它正在通过 DMZ,例如,监护人可能会将“未经授权的”请求从application/json更改text/*为。

可能相关的另一点是,要成功启动应用程序,必须使用以下属性运行它: spring.main.web-application-type=none

更新
我现在可以运行我的应用程序,尽管不是我想要的!
问题似乎是我需要使用的团队 pom 导入的传递依赖项(作为父 pom)。我现在成功启动了该项目。但仍然发现 json 对象(现在是杰克逊)仍然是空的(如 所报告的object.isEmpty())。
我现在的依赖项/版本是:
org.springframework:5.2.8.RELEASE
org.springframework.boot:2.3.3.RELEASE
com.fasterxml.jackson:2.11.2
我知道我正在与父 pom 作斗争,这与我正在尝试做的事情相反,但想知道我真正需要的依赖项是什么

0 投票
0 回答
667 浏览

java - Java HTTP API 调用 - 流入和流出数据

我有一个用 Java 和 Spring Boot 编写的文件传输服务,它在没有任何本地存储的情况下将文件从源流传输到目标。

它从源获取 InputStream 的句柄,并为目标获取 OutputStream 的句柄,并有效地执行以下操作以流式传输文件。

现在我有另一个要求,我需要调用一个接受应用程序/八进制流并返回相同的加密 API。API 在客户端提供数据时对数据进行加密,同时将数据作为流返回。我已经使用以下命令使用 curl 测试了 API:

现在我需要将此加密 API 与我的原始文件传输服务集成,在那里我可以获得源 InputStream 的句柄,将其提供给 API 请求,从 API 响应接收 InputStream 并将其插入到我的原始 IOUtils.copy 调用中以传输数据到目的地:

为了最初实现加密 API 调用,我尝试构建一个客户端并提供一个 FileInputStream 并将响应提取到 FileOutputStream 中。我已经尝试过 Apache HTTPClient 和 Spring RestTemplate。在文件较小的这两种情况下,它都按预期工作,但是对于大文件,加密 API 仅接收部分数据,并且似乎卡在那里。原始调用方(文件传输服务)也没有得到任何响应并挂起。两种实现中的行为是相同的。

使用 HTTPClient 实现:

使用 Spring RestTemplate 实现:

这两种情况都在处理小文件,但挂在大文件上。我试图将请求 IOUtils.copy 包装在“可运行”线程中,但仍然是同样的问题。

0 投票
2 回答
1540 浏览

java - 我在 java 中收到 java.util.MissingFormatArgumentException: Format specifier '%s' 错误

我得到一个 java.lang.RuntimeException:

我正在传递以下 JSON 文件:

到以下方法:

}

依次传递给以下方法并发送到服务器:

0 投票
1 回答
73 浏览

java - 如何使用 Post 方法测试在 Rest 服务上获取参数

我正在尝试使用 Post 方法测试获取用于处理请求的参数

  • 测试方法

变体 1

变体 2

更新_1

在我的项目中,异常是这样处理的:

  • dto
  • 处理程序

在方法中,如有必要,我会抛出一个特定的异常......

.wsmsDefaultHandlerExceptionResolver:已解决 [org.springframework.web.bind.MissingServletRequestParameterException:必需的字符串参数“strListId”不存在]

谁知道错误是什么。请说明您需要在此处添加什么以及为什么?