当前位置: 首页 > 知识库问答 >
问题:

路径中的日期误导了请求URI

关翰
2023-03-14

我有一个URL的日期格式为“无法加载rs/service/store/grantor/122/5801/due/10/30/2017//true?request.preventcache=1562353357306 status:404”,其中10/30/2017是其java代码中的日期

@GET
@Path("/dd/{sp}/{rpt}/{ter}/{date}/{grant}/{refresh}")
@Produces(MediaType.APPLICATION_JSON)

public List<ReportPeriodBean> getApprovals(@PathParam("sp") String sp,
        @PathParam("rpt") String rpt, @PathParam("ter") String ter,
        @PathParam("date") String date,
        @PathParam("grant") String grant, @PathParam("refresh") boolean refresh) throws Exception {

我应该如何允许我的URL作为一个正确的日期格式,并允许controler处理其余的问题,在Spring中是否存在?

共有1个答案

劳研
2023-03-14

要匹配描述中的URL,最好是转义不同的日期组件,如Month、Day和year。然后在方法内部,您可以将它们拼凑在一起成为一个Date对象。

将它们全部捕获为一个日期类型将针对URL结构运行,在该结构中,它无法区分日期中的“斜线”与区分不同URL参数的“斜线”之间的区别。前提是您不想为日期切换到ISO-8601表示形式,并且不想将斜杠%-编码为%2f或使用查询字符串等.

类似这样的事情应该会起作用:

@GET
@Path("/dd/{sp}/{rpt}/{ter}/{month}/{day}/{year}/{grant}/{refresh}")
@Produces(MediaType.APPLICATION_JSON)
public List<ReportPeriodBean> getApprovals(@PathParam("sp") String sp,
        @PathParam("rpt") String rpt, 
        @PathParam("ter") String ter,
        @PathParam("month") int month,
        @PathParam("day") int day,
        @PathParam("year") int year,
        @PathParam("grant") String grant, 
        @PathParam("refresh") boolean refresh) {

    LocalDate date = LocalDate.of(year, month, day);
    // Now use the date however you like

}

rs/service/store/grantor/122/5801/due/10/30/2017/grantvalue/true?request.preventcache=1562353357306

 类似资料:
  • 引导 servlet 服务请求的请求路径由许多重要部分组成。以下元素从请求URI路径得到,并通过请求对象公开: Context Path:与ServletContext相关联的路径前缀是这个Servlet 的一部分。如果这个上下文是基于Web服务器的URL命名空间基础上的“默认”上下文,那么这个路径将是一个空字符串。否则,如果上下文不是基于服务器的命名空间,那么这个路径以“/”字符开始,但不以“/

  • 问题内容: 我有一个名为“ localhost:3000 / returnStat”的服务,该服务应将文件路径作为参数。例如“ /BackupFolder/toto/tata/titi/myfile.txt”。 如何在浏览器上测试此服务?例如,如何使用Express格式化此请求? 问题答案: 我尚未测试您的代码,但其他方法可行 如果您想从请求网址获取路径信息 1.如果您获取的URL参数仍然无法读取

  • 我已经在spring boot Application.properties中配置了日志路径属性。 在application.properties中的此属性中。它使用日志文件名,并在tomcat日志文件目录中创建一个新的日志文件。我检查了我的系统属性,它设置了LOG_FILE和LOG_PATH属性。我使用了1.3.6版本的spring Boot。任何与此相关的已知问题。我读过一期,似乎很久以前就修

  • 我知道有很多关于映射请求数据的问题,但这两个都帮不了我。所以,我试图实现的是一个映射到lambda的APIendpoint。当bucket触发404时,将转发到该endpoint的请求,并且参数通过请求路径传递给lambda,例如:/{image_name}/{width}/{height}。lambda的代码只调用 在集成请求中,我创建了三个映射模板:plain/text、plain/html、

  • 我有一个eureka服务,它有一个swagger。eureka在http://localhost:8050,服务按名称 /service.问题是当我打开swagger并尝试发出请求时,它会将其发送到。该服务有一个上下文路径“path”,因此它应该是。这是swagger的配置:

  • 我有一个jersey服务器的例子,它适用于XML,但不适用于JSON。 如果我将此xml请求作为发送到服务器,则一切正常, 作为) 我在utilities-online.info将其翻译为JSON,并将其作为发送到相同的URL,具有相同的参数,但收到错误“400错误请求” 环境: Tomcat 7 球衣2.17 我尝试过的: 将添加到init-参数 启用init-参数为 添加了依赖项//