golang的url包中没有Query方法?

查看:501
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆