以下面的url为例,这个例子实际上是《go语言圣经》中7.7章节http.handler的一个例子。我们需要更新袜子socks的价钱为16,鞋子shoes的价格为100。我们把它们写到同一个url中。对于这种一个url有多个参数的情况该如何处理呢?

http://localhost:8000/update?item=socks&price=16&item=shoes&price=100
req.URL.Query()type Values map[string][]string
func (db database) update(w http.ResponseWriter, req *http.Request) {
    query := req.URL.Query()
    for key, item := range query {
        fmt.Fprintln(w, key, item)
    }
}

遍历map后得到的结果如图所示。从图中可以看出map类型的query变量有两项,分别是item [socks shoes]和price [16 100]。socks对应16,shoes对应100。拿到待更新的值后就可以更新对应的变量啦!


结果图

有疑问加站长微信联系(非本文作者)