java - 如何正确地将格式化的日期时间传递到 HTTP 请求中?

标签 java spring rest http datetime

我的任务是通过使用 HTTP 请求调用 REST 服务的端点来编写 REST 服务的测试。 HTTP 请求的一部分应该是日期(以仅过滤该日期之后修改的项目)。问题是,我似乎无法正确地将日期传递到 HTTP 请求中。

这是在 Rest Controller 中定义端点的方式:

@GetMapping("/{resourceType}/{application}")
public Map<String, Map<String, Map<String, Map<String, String>>>> findByTypeAndApplication(@PathVariable("resourceType") ResourceType type,
        @PathVariable("application") String application,
        @RequestParam(name = "modifiedAfter", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date modifiedAfter)

“modifiedAfter”参数给我带来了麻烦。尝试传递根据“模式”格式化的日期似乎对我不起作用。解析成 URL 后,请求将如下所示:

http://.../LANGTEXT/INTEGRATION-EXCEL-TEST?modifiedAfter=2019-06-11%2021%3A28%3A44

我还尝试了 resassured.given 来构建请求。我尝试在地址本身中传递参数,作为 param()、作为 queryParam() 和作为 formParam()。我尝试将它作为格式化字符串(根据模式)和日期对象传递。似乎没有任何作用。

我无法更改 Controller 本身(包括日期格式),因此我需要在 HTTP 请求中正确传递日期。

如果有任何建议,我将不胜感激。

谢谢,彼得

最佳答案

在服务器端,spring 自动执行此操作。您不需要指定日期模式。

关于java - 如何正确地将格式化的日期时间传递到 HTTP 请求中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56526991/

相关文章:

Java导入包不存在

java - 在 EJB 中安排类似 Cron 的作业

rest - 如何使用 REST 或 SOAP 更改 Amazon S3 对象的键/名称?

rest - 当我创建新的 RESTful Web 服务时,Netbeans 不会创建 ApplicationConfig.java

java - 在 intellij 中,如何查看在上一次提交之前重命名或移动的文件的 SVN 日志/历史记录

java - jProfiler 不提供方法级别的统计信息

Spring REST DELETE 示例错误

java - JUnit 测试 - 对模拟对象进行 Assets 或验证(或两者)?

java - SpringBoot 应用程序在 WLS12c/Java8/RHEL fedora7.5 中失败,无法读取架构文档 http ://www. springframework.org/schema/beans/spring-beans.xsd

json - Nodejs api 的 nginx 配置不返回/api 调用