修改了 http 请求可能没有关闭 response.Body 的 bug
diff --git a/webservice.go b/webservice.go
index 17cc4f1..43b2e87 100644
--- a/webservice.go
+++ b/webservice.go
@@ -237,13 +237,15 @@
params["sign_method"] = "HMAC"
r, err := w.DoGet(uri, params)
+ if r != nil {
+ defer r.Body.Close()
+ }
if err != nil || r.StatusCode != 200 {
log.Errorf(" err = %v\n", err)
return err
}
body, err := ioutil.ReadAll(r.Body)
- defer r.Body.Close()
s := &FormJson{}
err = json.Unmarshal(body, &s)
@@ -260,12 +262,14 @@
params["funcdata"] = call_data
r, err := w.DoPost("/ecardservice/ecardapi", params)
+ if r != nil {
+ defer r.Body.Close()
+ }
if err != nil {
log.Errorf(" err = %v\n", err)
return nil, err
}
- defer r.Body.Close()
if r.StatusCode != 200 {
return nil, errors.New(fmt.Sprintf("Request StatusCode:%v", r.StatusCode))
}
@@ -310,11 +314,13 @@
var r *http.Response
r, err = client.Post(full_url, "application/x-www-form-urlencoded",
bytes.NewReader([]byte(vl.Encode())))
+ if r != nil {
+ defer r.Body.Close()
+ }
if err != nil {
log.Errorf("Status=%v, err=%v", r, err)
return
}
- defer r.Body.Close()
if r.StatusCode != 200 {
log.Errorf("Request Error %v\n", r.StatusCode)
err = errors.New(fmt.Sprintf("Request Error, StatusCode : %v", r.StatusCode))