golang的url包中没有Query方法?
本文介绍了golang的url包中没有Query方法?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
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 才有这个方法
这篇关于golang的url包中没有Query方法?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文