package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
type router struct{}
func (*router) ServeHTTP(w http.ResponseWriter, r *http.Request) {
path := r.URL.String() //获得访问的路径
fmt.Println(path)
urlStruct, err := url.Parse(path)
if err != nil {
fmt.Println(err)
}
rawQuery := urlStruct.RawQuery
// fmt.Println(rawQuery)
queryMap, err := url.ParseQuery(rawQuery)
if err != nil {
fmt.Println(err)
}
fmt.Println(queryMap)
fmt.Println(queryMap["id"])
fmt.Println("______")
// io.WriteString(w, queryMap["id"])
io.WriteString(w, url.URL.Query(urlStruct.RawQuery))
}
func main() {
http.ListenAndServe(":80", &router{}) //第2个参数需要实现Hander接口的struct
}
该代码报错
.main.go:29: invalid method expression url.URL.Query (needs pointer
receiver: (*url.URL).Query) .main.go:29: url.URL.Query undefined
(type url.URL has no method Query)
http://studygolang.com/pkgdoc 官方手册里面明明有这个方法啊
我的环境
C:\Users\Administrator>go version
go version go1.7.5 windows/amd64
你看错了,url.URL 才有这个方法