diff options
author | Brad Fitzpatrick <bradfitz@golang.org> | 2014-11-12 14:27:27 -0800 |
---|---|---|
committer | Brad Fitzpatrick <bradfitz@golang.org> | 2014-11-12 14:27:27 -0800 |
commit | 38ea0ae05f1f2839949ca491a3541ada0e4c1211 (patch) | |
tree | 1b02e072ad4a0e6231927410cc2e42e6734c682e | |
parent | 1a60ea1c01a627f4a0852fd0f4a37ba2c0eabc3c (diff) | |
download | go-38ea0ae05f1f2839949ca491a3541ada0e4c1211.tar.gz go-38ea0ae05f1f2839949ca491a3541ada0e4c1211.zip |
net/url: add example of using URL.Opaque with http.Request
Per private thread soliciting help. I realized part of this is
documented in several places, but we lacked a unifying
example.
LGTM=rsc
R=golang-codereviews
CC=adg, golang-codereviews, iant, rsc
https://golang.org/cl/171620043
-rw-r--r-- | src/net/url/example_test.go | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/net/url/example_test.go b/src/net/url/example_test.go index 56c5dc696a..e55c1aa166 100644 --- a/src/net/url/example_test.go +++ b/src/net/url/example_test.go @@ -7,7 +7,10 @@ package url_test import ( "fmt" "log" + "net/http" + "net/http/httputil" "net/url" + "strings" ) func ExampleValues() { @@ -39,3 +42,30 @@ func ExampleURL() { fmt.Println(u) // Output: https://google.com/search?q=golang } + +func ExampleURL_opaque() { + // Sending a literal '%' in an HTTP request's Path + req := &http.Request{ + Method: "GET", + Host: "example.com", // takes precendence over URL.Host + URL: &url.URL{ + Host: "ignored", + Scheme: "https", + Opaque: "/%2f/", + }, + Header: http.Header{ + "User-Agent": {"godoc-example/0.1"}, + }, + } + out, err := httputil.DumpRequestOut(req, true) + if err != nil { + log.Fatal(err) + } + fmt.Println(strings.Replace(string(out), "\r", "", -1)) + // Output: + // GET /%2f/ HTTP/1.1 + // Host: example.com + // User-Agent: godoc-example/0.1 + // Accept-Encoding: gzip + // +} |