gpt4 book ai didi

java - 如何将 url 作为路径参数传递?在 JAX-RS @Path 中

转载 作者:行者123 更新时间:2023-11-30 10:57:37 26 4
gpt4 key购买 nike

http://localhost:8181/RESTfulExample/entityid/https://www.youtube.com

@GET
@Path("/entityid/{entityid : [a-zA-Z][a-zA-Z_0-9]}")
public Response getUserByentityid(@PathParam("entityid") String entityid) {

return Response.status(200)
.entity("getUserByentityid is called, username : " + entityid)
.build();

}

如何修改正则表达式来接受其中的一个url?或者任何其他替代解决方案来获取作为 URL 的 entityid?

最佳答案

您不应将 URL 作为路径参数传递。实体 ID 要么是常规标识符(整数、GUID、...),在这种情况下它可以像您拥有的那样位于路径中,或者它一个 URL,在这种情况下 URL将是 https://example.com/myapp/entityid/123 并且您返回实体 ID 部分 的实体 ID URL 只是一个常规标识符。

现在,技术上,您可以通过使用 percent encoding 对所有特殊字符进行编码来将 URL 作为路径参数传递,但是我不推荐它。

假设您的应用位于https://example.net/otherapp/,那么组合的 url 将是:

https://example.net/otherapp/entityid/https%3A%2F%2Fexample.com%2Fmyapp%2Fentityid%2F123

正则表达式将匹配未编码的值,因此这可能有效:

{entityid : https?://.*}

注意:编码路径段必须所有值进行,而不仅仅是对URL值。整数是安全的,但几乎所有其他值都必须进行编码。

关于java - 如何将 url 作为路径参数传递?在 JAX-RS @Path 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32545943/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com