【问题标题】:How to correctly pass a formatted datetime into a HTTP request?如何正确地将格式化的日期时间传递给 HTTP 请求?
【发布时间】:2019-10-24 21:21:02
【问题描述】:

我的任务是通过 HTTP 请求调用其端点来为 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

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

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

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

谢谢,彼得

【问题讨论】:

  • 这是自动编码的,在服务器端会被解码。我不认为这里有什么问题。是什么东西不工作。请记住,编码时空格将替换为 %20。
  • 对不起,我的错误。不当行为是由后端更底层的东西引起的。参数本身已正确传递。

标签: java spring rest http datetime


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-28
    • 2021-09-07
    • 2017-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多