diff options
Diffstat (limited to 'go/util')
| -rw-r--r-- | go/util/http_util.go | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/go/util/http_util.go b/go/util/http_util.go index e6f9f0184..a33db9199 100644 --- a/go/util/http_util.go +++ b/go/util/http_util.go @@ -6,6 +6,7 @@ import ( "io/ioutil" "net/http" "net/url" + "strings" ) var ( @@ -71,3 +72,26 @@ func Delete(url string) error { } return nil } + +func DownloadUrl(fileUrl string) (filename string, content []byte, e error) { + response, err := client.Get(fileUrl) + if err != nil { + return "", nil, err + } + defer response.Body.Close() + contentDisposition := response.Header["Content-Disposition"] + if len(contentDisposition) > 0 { + glog.V(4).Info("Content-Disposition: ", contentDisposition[0]) + if strings.HasPrefix(contentDisposition[0], "filename=") { + filename = contentDisposition[0][len("filename="):] + } + } else { + glog.V(4).Info("No Content-Disposition!") + } + content, e = ioutil.ReadAll(response.Body) + return +} + +func Do(req *http.Request) (resp *http.Response, err error) { + return client.Do(req) +} |
