为了账号安全,请及时绑定邮箱和手机立即绑定

如何在请求中转义正斜杠以使url路由器将其视为uri参数的一部分?

如何在请求中转义正斜杠以使url路由器将其视为uri参数的一部分?

Go
缥缈止盈 2021-04-08 17:14:30
我有以下使用大猩猩/多路复用器的路由映射: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"]是否可以使用大猩猩/多路复用器或任何其他路由器来实现此目的?
查看完整描述

2 回答

?
冉冉说

TA贡献1877条经验 获得超1个赞

对于您的问题:

是否可以使用大猩猩/多路复用器或任何其他路由器来实现此目的?

是的,可以使用gorilla / mux。您发布的代码没有错。

错误是page not found指您传递的网址未在多路复用器路由器中注册。

传递http://localhost:8080/v1/data/hello world浏览器。route将在定义的网址之后捕获任何参数。还可以在处理程序请求结构中打印捕获的url路径,以查看所请求的url为:

fmt.Println(r.URL.Path)
uriP := mux.Vars(r)
param := uriP["param"]


查看完整回答
反对 回复 2021-04-19
  • 2 回答
  • 0 关注
  • 260 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信