zhangmeng
2024-01-19 01dfd9dc8de7b19f9dfa4284722e01bbd5837801
sbusClient.go
@@ -3,8 +3,8 @@
import (
   "basic.com/valib/c_bhomebus.git/api/bhsgo"
   "basic.com/valib/c_bhomebus.git/proto/source/bhome_msg"
   json "github.com/json-iterator/go"
   "errors"
   jsoniter "github.com/json-iterator/go"
   "strconv"
)
@@ -13,26 +13,26 @@
}
type ProcInfo struct {
   Name          string             `json:"name"` // 进程名称
   ID            string             `json:"id"`   // 进程唯一标识
   Info          string             `json:"info"` // 进程的描述信息,用于区分同一进程名称下多个进程
   Name string `json:"name"` // 进程名称
   ID   string `json:"id"`   // 进程唯一标识
   Info string `json:"info"` // 进程的描述信息,用于区分同一进程名称下多个进程
}
type Request struct {
   Path                 string                 `json:"path"`
   Method               string                 `json:"method"`
   ContentType          string                 `json:"contentType"`
   HeaderMap            map[string][]string    `json:"headerMap"`
   QueryMap             map[string][]string    `json:"queryMap"`
   FormMap              map[string][]string    `json:"formMap"`
   PostFormMap          map[string][]string    `json:"postFormMap"`
   Body                 []byte                 `json:"body"`
   Path        string              `json:"path"`
   Method      string              `json:"method"`
   ContentType string              `json:"contentType"`
   HeaderMap   map[string][]string `json:"headerMap"`
   QueryMap    map[string][]string `json:"queryMap"`
   FormMap     map[string][]string `json:"formMap"`
   PostFormMap map[string][]string `json:"postFormMap"`
   Body        []byte              `json:"body"`
}
type reply struct {
   Success          bool                   `json:"success"`
   Msg             string                   `json:"msg"`
   Data             interface{}             `json:"data"`
   Success bool        `json:"success"`
   Msg     string      `json:"msg"`
   Data    interface{} `json:"data"`
}
func (sc SBusClient) DoGetRequest(url string, params map[string]string, headers map[string]string) ([]byte, error) {
@@ -44,13 +44,14 @@
   }
   fillParam(&req, headers, params, nil)
   var json = jsoniter.ConfigCompatibleWithStandardLibrary
   rb, err := json.Marshal(req)
   if err !=nil {
      return nil,err
   if err != nil {
      return nil, err
   }
   rMsg := bhome_msg.MsgRequestTopic{
      Topic: []byte(req.Path),
      Data: rb,
      Data:  rb,
   }
   return busReq(&rMsg, sc.nodes)
@@ -69,7 +70,7 @@
      if body != nil {
         req.PostFormMap = make(map[string][]string)
         req.FormMap = map[string][]string{}
         for k,v := range body {
         for k, v := range body {
            switch v.(type) {
            case string:
               req.FormMap[k] = []string{v.(string)}
@@ -87,6 +88,7 @@
         }
      }
   } else if contentType == CONTENT_TYPE_JSON {
      var json = jsoniter.ConfigCompatibleWithStandardLibrary
      bs, err := json.Marshal(body)
      if err != nil {
         logPrint("fill json body err:", err)
@@ -95,13 +97,14 @@
      }
   }
   var json = jsoniter.ConfigCompatibleWithStandardLibrary
   rb, err := json.Marshal(req)
   if err !=nil {
      return nil,err
   if err != nil {
      return nil, err
   }
   rMsg := bhome_msg.MsgRequestTopic{
      Topic: []byte(req.Path),
      Data: rb,
      Data:  rb,
   }
   return busReq(&rMsg, sc.nodes)
@@ -116,13 +119,14 @@
   }
   fillParam(&req, headers, nil, body)
   var json = jsoniter.ConfigCompatibleWithStandardLibrary
   rb, err := json.Marshal(req)
   if err !=nil {
      return nil,err
   if err != nil {
      return nil, err
   }
   rMsg := bhome_msg.MsgRequestTopic{
      Topic: []byte(req.Path),
      Data: rb,
      Data:  rb,
   }
   return busReq(&rMsg, sc.nodes)
@@ -137,33 +141,35 @@
   }
   fillParam(&req, headers, nil, body)
   var json = jsoniter.ConfigCompatibleWithStandardLibrary
   rb, err := json.Marshal(req)
   if err !=nil {
      return nil,err
   if err != nil {
      return nil, err
   }
   rMsg := bhome_msg.MsgRequestTopic{
      Topic: []byte(req.Path),
      Data: rb,
      Data:  rb,
   }
   return busReq(&rMsg, sc.nodes)
}
func fillParam(req *Request,headers map[string]string, params map[string]string, body map[string]interface{}) {
func fillParam(req *Request, headers map[string]string, params map[string]string, body map[string]interface{}) {
   headerMap := make(map[string][]string)
   queryMap := make(map[string][]string)
   if headers != nil {
      for k,v := range headers {
      for k, v := range headers {
         headerMap[k] = []string{v}
      }
   }
   if params != nil {
      for k,v := range params {
      for k, v := range params {
         queryMap[k] = []string{v}
      }
   }
   req.HeaderMap = headerMap
   req.QueryMap = queryMap
   var json = jsoniter.ConfigCompatibleWithStandardLibrary
   b, err := json.Marshal(body)
   if err != nil {
      logPrint("marshal body err:", err)
@@ -174,7 +180,7 @@
/**
* 新版bhs直接发起请求,不会产生共享内存泄漏的问题?
*/
 */
func doReq(req *bhome_msg.MsgRequestTopic, destArr []bhome_msg.BHAddress) ([]byte, error) {
   dest := bhome_msg.BHAddress{}
   if destArr != nil && len(destArr) > 0 {
@@ -188,4 +194,4 @@
      logPrint("bhsgo.Request request err:", r.Errmsg)
      return nil, errors.New("bhsgo.Request return false")
   }
}
}