Commit 9b3c743f authored by Andrew Gerrand's avatar Andrew Gerrand

http: add Head function for making HTTP HEAD requests

R=rsc
CC=golang-dev
https://golang.org/cl/1581041
parent 7bc03718
...@@ -130,7 +130,6 @@ func Get(url string) (r *Response, finalURL string, err os.Error) { ...@@ -130,7 +130,6 @@ func Get(url string) (r *Response, finalURL string, err os.Error) {
return return
} }
// Post issues a POST to the specified URL. // Post issues a POST to the specified URL.
// //
// Caller should close r.Body when done reading it. // Caller should close r.Body when done reading it.
...@@ -154,6 +153,19 @@ func Post(url string, bodyType string, body io.Reader) (r *Response, err os.Erro ...@@ -154,6 +153,19 @@ func Post(url string, bodyType string, body io.Reader) (r *Response, err os.Erro
return send(&req) return send(&req)
} }
// Head issues a HEAD to the specified URL.
func Head(url string) (r *Response, err os.Error) {
var req Request
req.Method = "HEAD"
if req.URL, err = ParseURL(url); err != nil {
return
}
if r, err = send(&req); err != nil {
return
}
return
}
type nopCloser struct { type nopCloser struct {
io.Reader io.Reader
} }
......
...@@ -28,3 +28,13 @@ func TestClient(t *testing.T) { ...@@ -28,3 +28,13 @@ func TestClient(t *testing.T) {
t.Errorf("Incorrect page body (did not begin with User-agent): %q", s) t.Errorf("Incorrect page body (did not begin with User-agent): %q", s)
} }
} }
func TestClientHead(t *testing.T) {
r, err := Head("http://www.google.com/robots.txt")
if err != nil {
t.Error(err)
}
if _, ok := r.Header["Last-Modified"]; !ok {
t.Error("Last-Modified header not found.")
}
}
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