mirror of
https://github.com/golang/go
synced 2024-11-22 12:44:50 -07:00
Don't prefix Url.Path with a slash in Request.write,
because Url.Path already starts with one. Avoid crashing in Request.ParseForm if there is no body. R=rsc APPROVED=rsc DELTA=5 (4 added, 0 deleted, 1 changed) OCL=30552 CL=30607
This commit is contained in:
parent
71f19d66d4
commit
343bfcfca7
@ -36,6 +36,7 @@ var (
|
||||
HeaderTooLong = &ProtocolError{"http header too long"};
|
||||
BadContentLength = &ProtocolError{"invalid content length"};
|
||||
ShortEntityBody = &ProtocolError{"entity body too short"};
|
||||
NoEntityBody = &ProtocolError{"no entity body"};
|
||||
BadHeader = &ProtocolError{"malformed http header"};
|
||||
BadRequest = &ProtocolError{"invalid http request"};
|
||||
BadHTTPVersion = &ProtocolError{"unsupported http version"};
|
||||
@ -124,7 +125,7 @@ const defaultUserAgent = "http.Client";
|
||||
// Write an HTTP request -- header and body -- in wire format.
|
||||
// See Send for a list of which Request fields we use.
|
||||
func (req *Request) write(w io.Writer) os.Error {
|
||||
uri := "/" + URLEscape(req.Url.Path);
|
||||
uri := URLEscape(req.Url.Path);
|
||||
if req.Url.RawQuery != "" {
|
||||
uri += "?" + req.Url.RawQuery;
|
||||
}
|
||||
@ -493,6 +494,9 @@ func parseForm(body string) (data map[string] *vector.StringVector, err os.Error
|
||||
|
||||
// ParseForm parses the request body as a form.
|
||||
func (r *Request) ParseForm() (err os.Error) {
|
||||
if r.Body == nil {
|
||||
return NoEntityBody
|
||||
}
|
||||
ct, ok := r.Header["Content-Type"];
|
||||
if !ok {
|
||||
ct = "application/x-www-form-urlencoded"; // default
|
||||
|
Loading…
Reference in New Issue
Block a user