aboutsummaryrefslogtreecommitdiff
path: root/go/util/http_util.go
diff options
context:
space:
mode:
Diffstat (limited to 'go/util/http_util.go')
-rw-r--r--go/util/http_util.go18
1 files changed, 16 insertions, 2 deletions
diff --git a/go/util/http_util.go b/go/util/http_util.go
index 7854302ab..d56aaa39a 100644
--- a/go/util/http_util.go
+++ b/go/util/http_util.go
@@ -9,7 +9,10 @@ import (
"net/url"
"strings"
+ "encoding/json"
+
"github.com/chrislusf/seaweedfs/go/security"
+ "github.com/syndtr/goleveldb/leveldb/errors"
)
var (
@@ -79,10 +82,21 @@ func Delete(url string, jwt security.EncodedJwt) error {
return e
}
defer resp.Body.Close()
- if _, err := ioutil.ReadAll(resp.Body); err != nil {
+ body, err := ioutil.ReadAll(resp.Body)
+ if err != nil {
return err
}
- return nil
+ switch resp.StatusCode {
+ case http.StatusNotFound, http.StatusAccepted, http.StatusOK:
+ return nil
+ }
+ m := make(map[string]interface{})
+ if e := json.Unmarshal(body, m); e == nil {
+ if s, ok := m["error"].(string); ok {
+ return errors.New(s)
+ }
+ }
+ return errors.New(string(body))
}
func GetBufferStream(url string, values url.Values, allocatedBytes []byte, eachBuffer func([]byte)) error {