fix发送MML数据格式解析
This commit is contained in:
@@ -5,10 +5,10 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
// 发送MML
|
// 发送MML原始消息
|
||||||
// ip 网元IP地址
|
// ip 网元IP地址
|
||||||
// msg 指令
|
// msg 指令
|
||||||
func MMLSendMsgToString(ip, msg string) (string, error) {
|
func MMLSendMsg(ip, msg string) (string, error) {
|
||||||
// 创建MMLClient实例
|
// 创建MMLClient实例
|
||||||
client, err := NewMMLClient(ip)
|
client, err := NewMMLClient(ip)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -31,23 +31,55 @@ func MMLSendMsgToString(ip, msg string) (string, error) {
|
|||||||
return data, nil
|
return data, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 发送MML
|
||||||
|
// ip 网元IP地址
|
||||||
|
// msg 指令
|
||||||
|
func MMLSendMsgToString(ip, msg string) (string, error) {
|
||||||
|
// 发送获取数据
|
||||||
|
str, err := MMLSendMsg(ip, msg)
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 截断
|
||||||
|
index := strings.Index(str, "\nUDM>")
|
||||||
|
if index != -1 {
|
||||||
|
str = str[:index]
|
||||||
|
str = strings.ToLower(str)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 命令成功
|
||||||
|
if strings.HasPrefix(str, "command ok") {
|
||||||
|
return str, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
return "", fmt.Errorf(str)
|
||||||
|
}
|
||||||
|
|
||||||
// 发送MML
|
// 发送MML
|
||||||
// ip 网元IP地址
|
// ip 网元IP地址
|
||||||
// msg 指令
|
// msg 指令
|
||||||
func MMLSendMsgToMap(ip, msg string) (map[string]string, error) {
|
func MMLSendMsgToMap(ip, msg string) (map[string]string, error) {
|
||||||
// 发送获取数据
|
// 发送获取数据
|
||||||
str, err := MMLSendMsgToString(ip, msg)
|
str, err := MMLSendMsg(ip, msg)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 无数据
|
||||||
|
if strings.HasPrefix(str, "No Auth Data") {
|
||||||
|
return nil, fmt.Errorf("no auth data")
|
||||||
|
}
|
||||||
|
|
||||||
// 初始化一个map用于存储拆分后的键值对
|
// 初始化一个map用于存储拆分后的键值对
|
||||||
m := make(map[string]string)
|
m := make(map[string]string)
|
||||||
|
|
||||||
var items []string
|
var items []string
|
||||||
// 按照分隔符"\r\n"进行拆分
|
|
||||||
if strings.Contains(str, "\r\n") {
|
if strings.Contains(str, "\r\n") {
|
||||||
|
// 按照分隔符"\r\n"进行拆分
|
||||||
items = strings.Split(str, "\r\n")
|
items = strings.Split(str, "\r\n")
|
||||||
}
|
} else if strings.Contains(str, "\n") {
|
||||||
// 按照分隔符"\n"进行拆分
|
// 按照分隔符"\n"进行拆分
|
||||||
if strings.Contains(str, "\n") {
|
|
||||||
items = strings.Split(str, "\n")
|
items = strings.Split(str, "\n")
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -55,13 +87,11 @@ func MMLSendMsgToMap(ip, msg string) (map[string]string, error) {
|
|||||||
for _, item := range items {
|
for _, item := range items {
|
||||||
var pair []string
|
var pair []string
|
||||||
|
|
||||||
// 按照分隔符"="进行拆分键值对
|
|
||||||
if strings.Contains(item, "=") {
|
if strings.Contains(item, "=") {
|
||||||
|
// 按照分隔符"="进行拆分键值对
|
||||||
pair = strings.Split(item, "=")
|
pair = strings.Split(item, "=")
|
||||||
}
|
} else if strings.Contains(item, ":") {
|
||||||
|
// 按照分隔符":"进行拆分键值对
|
||||||
// 按照分隔符":"进行拆分键值对
|
|
||||||
if strings.Contains(item, ":") {
|
|
||||||
pair = strings.Split(item, ":")
|
pair = strings.Split(item, ":")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user