mirror of
https://github.com/golang/go
synced 2024-11-25 05:47:57 -07:00
http: use RawURL in Request.Write
R=rsc CC=golang-dev https://golang.org/cl/217066
This commit is contained in:
parent
1a37656b7a
commit
39e91f8858
@ -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)
|
||||
|
@ -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" +
|
||||
|
Loading…
Reference in New Issue
Block a user