diff options
author | Petar Maymounkov <petarm@gmail.com> | 2010-02-22 15:39:30 -0800 |
---|---|---|
committer | Petar Maymounkov <petarm@gmail.com> | 2010-02-22 15:39:30 -0800 |
commit | 45e762795a63dc90941f9165643baca80809a8d5 (patch) | |
tree | 57be88af522eced0e1328931ed6bbf42e2dbfb15 /src | |
parent | ec2af12ed506afad3fc31dbe6779892f7ceffff1 (diff) | |
download | golang-45e762795a63dc90941f9165643baca80809a8d5.tar.gz |
http: use RawURL in Request.Write
R=rsc
CC=golang-dev
http://codereview.appspot.com/217066
Committer: Russ Cox <rsc@golang.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/pkg/http/request.go | 11 | ||||
-rw-r--r-- | src/pkg/http/requestwrite_test.go | 2 |
2 files changed, 8 insertions, 5 deletions
diff --git a/src/pkg/http/request.go b/src/pkg/http/request.go index 89a5d837c..2110dfd52 100644 --- a/src/pkg/http/request.go +++ b/src/pkg/http/request.go @@ -152,7 +152,7 @@ const defaultUserAgent = "Go http package" // Write writes an HTTP/1.1 request -- header and body -- in wire format. // This method consults the following fields of req: // Host -// URL +// RawURL, if non-empty, or else URL // Method (defaults to "GET") // UserAgent (defaults to defaultUserAgent) // Referer @@ -167,9 +167,12 @@ func (req *Request) Write(w io.Writer) os.Error { host = req.URL.Host } - uri := valueOrDefault(urlEscape(req.URL.Path, false), "/") - if req.URL.RawQuery != "" { - uri += "?" + req.URL.RawQuery + uri := req.RawURL + if uri == "" { + uri = valueOrDefault(urlEscape(req.URL.Path, false), "/") + if req.URL.RawQuery != "" { + uri += "?" + req.URL.RawQuery + } } fmt.Fprintf(w, "%s %s HTTP/1.1\r\n", valueOrDefault(req.Method, "GET"), uri) diff --git a/src/pkg/http/requestwrite_test.go b/src/pkg/http/requestwrite_test.go index b04e0baba..2b47e0b3b 100644 --- a/src/pkg/http/requestwrite_test.go +++ b/src/pkg/http/requestwrite_test.go @@ -50,7 +50,7 @@ var reqWriteTests = []reqWriteTest{ Form: map[string][]string{}, }, - "GET / HTTP/1.1\r\n" + + "GET http://www.techcrunch.com/ HTTP/1.1\r\n" + "Host: www.techcrunch.com\r\n" + "User-Agent: Fake\r\n" + "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n" + |