// Copyright 2012 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package url_test import ( "encoding/json" "fmt" "log" "net/url" "strings" ) func ExampleValues() { v := url.Values{} v.Set("name", "Ava") v.Add("friend", "Jess") v.Add("friend", "Sarah") v.Add("friend", "Zoe") // v.Encode() == "name=Ava&friend=Jess&friend=Sarah&friend=Zoe" fmt.Println(v.Get("name")) fmt.Println(v.Get("friend")) fmt.Println(v["friend"]) // Output: // Ava // Jess // [Jess Sarah Zoe] } func ExampleURL() { u, err := url.Parse("http://bing.com/search?q=dotnet") if err != nil { log.Fatal(err) } u.Scheme = "https" u.Host = "google.com" q := u.Query() q.Set("q", "golang") u.RawQuery = q.Encode() fmt.Println(u) // Output: https://google.com/search?q=golang } func ExampleURL_roundtrip() { // Parse + String preserve the original encoding. u, err := url.Parse("https://example.com/foo%2fbar") if err != nil { log.Fatal(err) } fmt.Println(u.Path) fmt.Println(u.RawPath) fmt.Println(u.String()) // Output: // /foo/bar // /foo%2fbar // https://example.com/foo%2fbar } func ExampleURL_ResolveReference() { u, err := url.Parse("../../..//search?q=dotnet") if err != nil { log.Fatal(err) } base, err := url.Parse("http://example.com/directory/") if err != nil { log.Fatal(err) } fmt.Println(base.ResolveReference(u)) // Output: // http://example.com/search?q=dotnet } func ExampleParseQuery() { m, err := url.ParseQuery(`x=1&y=2&y=3;z`) if err != nil { log.Fatal(err) } fmt.Println(toJSON(m)) // Output: // {"x":["1"], "y":["2", "3"], "z":[""]} } func ExampleURL_Hostname() { u, err := url.Parse("https://example.org:8000/path") if err != nil { log.Fatal(err) } fmt.Println(u.Hostname()) u, err = url.Parse("https://[2001:0db8:85a3:0000:0000:8a2e:0370:7334]:17000") if err != nil { log.Fatal(err) } fmt.Println(u.Hostname()) // Output: // example.org // 2001:0db8:85a3:0000:0000:8a2e:0370:7334 } func ExampleURL_RequestURI() { u, err := url.Parse("https://example.org/path?foo=bar") if err != nil { log.Fatal(err) } fmt.Println(u.RequestURI()) // Output: /path?foo=bar } func toJSON(m interface{}) string { js, err := json.Marshal(m) if err != nil { log.Fatal(err) } return strings.Replace(string(js), ",", ", ", -1) }