Explorar o código

优化字符串拼接

Jerry %!s(int64=7) %!d(string=hai) anos
pai
achega
ed20555501
Modificáronse 1 ficheiros con 13 adicións e 5 borrados
  1. 13 5
      wechat_params.go

+ 13 - 5
wechat_params.go

@@ -7,7 +7,6 @@ import (
 	"crypto/sha256"
 	"encoding/hex"
 	"encoding/json"
-	"fmt"
 	"sort"
 	"strconv"
 	"strings"
@@ -189,11 +188,20 @@ func getSignString(secretKey string, wxReq WXReq) string {
 	return buffer.String()
 }
 
-func (w WXReq) generateXml() (reqXML string) {
-	reqXML = "<xml>"
+func (w WXReq) generateXml() (reqXml string) {
+	buffer := new(bytes.Buffer)
+	buffer.WriteString("<xml>")
+
 	for k, v := range w {
-		reqXML += fmt.Sprintf("<%s>%s</%s>", k, v, k)
+		buffer.WriteString("<")
+		buffer.WriteString(k)
+		buffer.WriteString("><![CDATA[")
+		buffer.WriteString(v)
+		buffer.WriteString("]]></")
+		buffer.WriteString(k)
+		buffer.WriteString(">")
 	}
-	reqXML += "</xml>"
+	buffer.WriteString("</xml>")
+	reqXml = buffer.String()
 	return
 }