Commit 39e91f88 authored by Petar Maymounkov's avatar Petar Maymounkov Committed by Russ Cox

http: use RawURL in Request.Write

R=rsc
CC=golang-dev
https://golang.org/cl/217066
parent 1a37656b
...@@ -152,7 +152,7 @@ const defaultUserAgent = "Go http package" ...@@ -152,7 +152,7 @@ const defaultUserAgent = "Go http package"
// Write writes an HTTP/1.1 request -- header and body -- in wire format. // Write writes an HTTP/1.1 request -- header and body -- in wire format.
// This method consults the following fields of req: // This method consults the following fields of req:
// Host // Host
// URL // RawURL, if non-empty, or else URL
// Method (defaults to "GET") // Method (defaults to "GET")
// UserAgent (defaults to defaultUserAgent) // UserAgent (defaults to defaultUserAgent)
// Referer // Referer
...@@ -167,9 +167,12 @@ func (req *Request) Write(w io.Writer) os.Error { ...@@ -167,9 +167,12 @@ func (req *Request) Write(w io.Writer) os.Error {
host = req.URL.Host host = req.URL.Host
} }
uri := valueOrDefault(urlEscape(req.URL.Path, false), "/") uri := req.RawURL
if req.URL.RawQuery != "" { if uri == "" {
uri += "?" + req.URL.RawQuery 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) fmt.Fprintf(w, "%s %s HTTP/1.1\r\n", valueOrDefault(req.Method, "GET"), uri)
......
...@@ -50,7 +50,7 @@ var reqWriteTests = []reqWriteTest{ ...@@ -50,7 +50,7 @@ var reqWriteTests = []reqWriteTest{
Form: map[string][]string{}, 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" + "Host: www.techcrunch.com\r\n" +
"User-Agent: Fake\r\n" + "User-Agent: Fake\r\n" +
"Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n" + "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n" +
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment