【发布时间】:2015-10-27 04:03:57
【问题描述】:
我在 Go 中设置了 Gorilla Mux 路由器。我在该路由器中设置了路由,以及与这些路由关联的函数处理程序。路由器完美运行,如果您打开浏览器窗口并输入特定 URL。但是,我遇到的问题是如果在命令行中输入 URL 该怎么办。我知道如何从命令行参数存储 URL,但我不知道如何将存储为 Go 中的 URL 变量的 URL 转发到路由器。比如,如果 URL 是在命令行中给出的而不是通过浏览器窗口输入的,你如何调用路由的函数处理程序?
代码:
u, err := url.Parse(os.Args[1])
if err != nil {
fmt.Println(err.Error())
}
host, port, _ := net.SplitHostPort(u.Host)
s := []string{":", port};
router := ANewRouter()
log.Fatal(http.ListenAndServe(strings.Join(s, ""), router))
//Route URL to router, somehow
【问题讨论】:
-
您是在问如何使用
curl之类的东西从命令行发出请求吗? -
@JimB 不,绝对不是。这个问题问起来很容易让人困惑。更像是,在命令行上给出了 url,比如“go run *.go -url="localhost:8080/something",其中 go 应用程序解析 URL 的 URL 标志
-
发布您拥有的代码会有所帮助
-
当您在命令行中输入 URL 时,您遇到了什么问题?程序会抛出错误吗?发布会有所帮助。
-
您是否尝试从用户输入的 url 提供服务?因为这就是你的代码正在做的事情。如果您尝试向它提出请求,我的回答应该可以满足您的要求。
标签: go url-routing gorilla mux