我试图在Golang中传递一个URL作为参数,但我一直无法找到所有我看过的教程中的解决方案。问题是,我只能得到url返回减去一个关键的正斜杠。如何在Golang路由中将URL作为参数传递?
我的处理程序是这样的:
router.HandleFunc("/new/{url}", createURL)
因此请求将如下所示:
www.myapp.heroku.com/new/https://www.google.com
但是,我的结果是缺少一个斜线的网址:
http:/www.google.com
我确定它可能与RFC3986有关,但是有没有办法传递url?
2017-04-26 Andy Morgan
将它传递给查询参数并对其进行urlencode。因为取决于你用什么多路解析器来解析,可能会有不同的解释。例如:'?url = https%3A%2F%2Fwww.google.com%2F' –
@BogdanIulianBursuc唯一的问题是用户只会在/ new参数后传递url。所以,他们首先要访问www.myapp.heroku.com,然后得到一条指令,在/ new之后传递url:'www.myapp.heroku.com/new/https://www.google .com'。不幸的是,我不知道如何将它传递给查询参数。 –
它应该仍然是URL编码的。给出的示例网址不是有效的网址,因此您无法保证它们可以正常使用任何解析器。 –