package dbapi
|
|
import (
|
"basic.com/valib/deliver.git"
|
"encoding/json"
|
"errors"
|
)
|
|
type ReqRepClient struct {}
|
|
var ReqRep_URL = "tcp://192.168.1.11:8002"
|
|
//初始化rply的地址
|
func InitRplyUrl(url string) {
|
ReqRep_URL = url
|
}
|
|
func (api ReqRepClient) DoGetRequest(url string, params map[string]string, headers map[string]string) ([]byte, error) {
|
var reqBody RplyParamBody
|
reqBody.Action = url
|
var destMap map[string]interface{}
|
for idx,val := range params {
|
destMap[idx] = interface{}(val)
|
}
|
reqBody.Params = destMap
|
return doRply(reqBody)
|
}
|
|
func (api ReqRepClient) DoPostRequest(url string, contentType string, body map[string]interface{}, params map[string]string, headers map[string]string) ([]byte, error) {
|
var reqBody RplyParamBody
|
reqBody.Action = url
|
reqBody.Params = body
|
return doRply(reqBody)
|
}
|
|
func (api ReqRepClient) DoPutRequest(url string, contentType string, body map[string]interface{}, headers map[string]string) ([]byte, error) {
|
var reqBody RplyParamBody
|
reqBody.Action = url
|
reqBody.Params = body
|
return doRply(reqBody)
|
}
|
|
func (api ReqRepClient) DoDeleteRequest(url string, contentType string, body map[string]interface{}, headers map[string]string) ([]byte, error) {
|
var reqBody RplyParamBody
|
reqBody.Action = url
|
reqBody.Params = body
|
return doRply(reqBody)
|
}
|
|
type RplyParamBody struct {
|
Action string `json:"action"` //根据action判断做何种响应
|
Params map[string]interface{} `json:"params"`//参数map
|
}
|
|
func doRply(body RplyParamBody)([]byte,error){
|
sender := deliver.NewClient(deliver.Mode(deliver.ReqRep), ReqRep_URL)
|
bytes,err := json.Marshal(body)
|
if err !=nil {
|
return nil,err
|
}
|
err = sender.Send(bytes)
|
if err !=nil {
|
resMsg, _ := sender.Recv()
|
if resMsg !=nil {
|
return resMsg,nil
|
}
|
}
|
return nil,errors.New("nng no resp")
|
}
|