我使用 gorilla/mux 进行路由映射:
router.Handle("/v1/data/{param}", handler)
当我调用 curl http://localhost:8080/v1/data/hello%2Fworld
时,我得到了 404
响应代码。问题是,在我的微服务中,我想将 /v1/data/
之后的所有内容解释为 param
。
捕获参数的代码如下:
uriP := mux.Vars(r)
param := uriP["param"]
是否可以使用 gorilla/mux 实现此目的?或任何其他路由器?
最佳答案
您应该添加正则表达式,因为默认的正则表达式匹配直到 /
或 ?
符号。
router.Handle("/v1/data/{param:.*}", handler)
关于http - 如何在请求中转义正斜杠以使 url-routers 将其计为 uri 参数的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51634411/