| | |
| | | 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" |
| | | ) |
| | | |
| | |
| | | } |
| | | |
| | | 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) { |
| | |
| | | } |
| | | 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) |
| | |
| | | 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)} |
| | |
| | | } |
| | | } |
| | | } else if contentType == CONTENT_TYPE_JSON { |
| | | var json = jsoniter.ConfigCompatibleWithStandardLibrary |
| | | bs, err := json.Marshal(body) |
| | | if err != nil { |
| | | logPrint("fill json body err:", err) |
| | |
| | | } |
| | | } |
| | | |
| | | 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) |
| | |
| | | } |
| | | 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) |
| | |
| | | } |
| | | 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) |
| | |
| | | |
| | | /** |
| | | * 新版bhs直接发起请求,不会产生共享内存泄漏的问题? |
| | | */ |
| | | */ |
| | | func doReq(req *bhome_msg.MsgRequestTopic, destArr []bhome_msg.BHAddress) ([]byte, error) { |
| | | dest := bhome_msg.BHAddress{} |
| | | if destArr != nil && len(destArr) > 0 { |
| | |
| | | logPrint("bhsgo.Request request err:", r.Errmsg) |
| | | return nil, errors.New("bhsgo.Request return false") |
| | | } |
| | | } |
| | | } |