| // Copyright 2012 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| // +build !cmd_go_bootstrap |
| |
| // This code is compiled into the real 'go' binary, but it is not |
| // compiled into the binary that is built during all.bash, so as |
| // to avoid needing to build net (and thus use cgo) during the |
| // bootstrap process. |
| |
| package main |
| |
| import ( |
| "fmt" |
| "io/ioutil" |
| "net/http" |
| ) |
| |
| // httpGET returns the data from an HTTP GET request for the given URL. |
| func httpGET(url string) ([]byte, error) { |
| resp, err := http.Get(url) |
| if err != nil { |
| return nil, err |
| } |
| defer resp.Body.Close() |
| if resp.StatusCode != 200 { |
| return nil, fmt.Errorf("%s: %s", url, resp.Status) |
| } |
| b, err := ioutil.ReadAll(resp.Body) |
| if err != nil { |
| return nil, fmt.Errorf("%s: %v", url, err) |
| } |
| return b, nil |
| } |