aboutsummaryrefslogtreecommitdiff
path: root/go/util
diff options
context:
space:
mode:
Diffstat (limited to 'go/util')
-rw-r--r--go/util/http_util.go24
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)
+}