Close body even if it got error http status.

Otherwise, http connections keep open if server
returned error status (e.g. Get returned error).
diff --git a/http.go b/http.go
index e1fde7f..b131ed9 100644
--- a/http.go
+++ b/http.go
@@ -174,10 +174,10 @@
 	if err != nil {
 		return err
 	}
+	defer res.Body.Close()
 	if res.StatusCode != http.StatusOK {
 		return fmt.Errorf("server returned: %v", res.Status)
 	}
-	defer res.Body.Close()
 	// TODO: avoid this garbage.
 	b, err := ioutil.ReadAll(res.Body)
 	if err != nil {