短信发送方法
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

84 lines
1.4 KiB

package sms
import (
"bytes"
"crypto/md5"
"encoding/hex"
"io/ioutil"
"net/http"
"strings"
"github.com/json-iterator/go"
)
var json = jsoniter.ConfigCompatibleWithStandardLibrary
// 密码加密
func Md5Str(str ...string) string {
var build strings.Builder
if len(str) > 0 {
for _, v := range str {
build.WriteString(v)
}
} else {
return ""
}
h := md5.New()
h.Write([]byte(build.String())) // 需要加密的字符串
cipher2Str := h.Sum(nil)
sMd5 := hex.EncodeToString(cipher2Str) // 输出加密结果
return sMd5
}
/*
* 连接多个字符串
*/
func StringJoin(s ...string) string {
var build strings.Builder
if len(s) > 0 {
for _, v := range s {
build.WriteString(v)
}
}
return build.String()
}
/**
* post 请求
*/
func PostJsonData(url string, param interface{}, header ...map[string]string) ([]byte, error) {
httpClient := &http.Client{}
params, err := json.Marshal(param)
if err != nil {
return []byte(""), err
}
req, err := http.NewRequest("POST", url, bytes.NewBuffer(params))
if err != nil {
return []byte(""), err
}
req.Header.Set("Content-Type", "application/json")
if len(header) > 0 {
for _, item := range header {
for k, v := range item {
req.Header[k] = []string{v}
}
}
}
resp, err := httpClient.Do(req)
if err != nil {
return []byte(""), err
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
return []byte(""), err
}
return body, nil
}