如何在golang函数中获取url的值

问题描述 投票:0回答:1

我有这个带有多路复用器的路由器功能:

func InitRouter() {
    r := http.NewServeMux()
    r.HandleFunc("/{id}", getWords)
    log.Fatal(http.ListenAndServe(":8000", r))
}

我希望 getWords 函数输出 id 的值,例如: 如果 url 是 www.abc.com/cat,getWords 将输出 cat 如果 url 是 www.abc.com/3 getWords 将输出 3

我查遍了互联网,但没有找到解释

go router gorilla
1个回答
0
投票

请使用

github.com/gorilla/mux
,并使用
go get -u github.com/gorilla/mux
添加:

代码:

package main

import (
    "fmt"
    "log"
    "net/http"
    "github.com/gorilla/mux"
)

func getWords(w http.ResponseWriter, r *http.Request) {
    vars := mux.Vars(r)
    id := vars["id"]
    fmt.Println("ID:", id)   // for stdout
    w.Write([]byte("ID: " + id))
}

func InitRouter() {
    r := mux.NewRouter()  // gorilla mux new router
    r.HandleFunc("/{id}", getWords)
    log.Fatal(http.ListenAndServe(":8000", r))
}

func main() {
    InitRouter()
}

输出(在终端和浏览器上):

ID: 3
ID: cat
© www.soinside.com 2019 - 2024. All rights reserved.