修改了 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))