aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrad Fitzpatrick <bradfitz@golang.org>2014-11-12 14:27:27 -0800
committerBrad Fitzpatrick <bradfitz@golang.org>2014-11-12 14:27:27 -0800
commit38ea0ae05f1f2839949ca491a3541ada0e4c1211 (patch)
tree1b02e072ad4a0e6231927410cc2e42e6734c682e
parent1a60ea1c01a627f4a0852fd0f4a37ba2c0eabc3c (diff)
downloadgo-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.go30
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
+ //
+}