为什么GorillaMux不允许我传入URL作为参数?

时间:2017-04-26 05:50:05

标签: rest http go backend gorilla

我正在构建一个URL缩短器API,并且我尝试使用GorillaMux将URL传递给函数。路由处理程序是这样的:

router.HandleFunc("/new/{url}", createURL)

唯一的问题是,如果我传入:https://www.google.com(如在localhost:8080 / new / https://www.google.com中),则它会以404 page not found响应并且URL更改为https: /www.google.com。

我尝试使用{url}位添加正则表达式模式,如下所示:{url:[a-zA-Z0-9 /] +}但这似乎不起作用有点矫枉过正,因为我在别处检查网址是否正确。

1 个答案:

答案 0 :(得分:3)

您需要对其进行编码,以便参数中的斜杠不会被混淆为URL的一部分:

localhost:8080/new/https%3A%2F%2Fwww.google.com