当我使用大猩猩/ RPC / JSON时如何为参数设置空值?

时间:2018-07-02 09:11:12

标签: go json-rpc gorilla

我尝试将请求发送到RPC接口,但是该接口不需要参数。这意味着params字段应为"params":[],但是当我使用json.EncodeClientRequest(method string, args interface{})时,params的值始终为"params":[{}]"params":[null]。因此,它总是会导致错误:map[code:-32602 message:Invalid method parameters]。如何为参数设置空值。接下来是我的请求结构:

// request struct
type JsonRpcReq struct {
    Id      uint32       `json:"id"`
    Url     string       `json:"url"`
    Method  string       `json:"method"`
    Params  *interface{} `json:"params"`
    JsonRpc string       `json:"jsonrpc"`
}

句子错误是:

// request method
func (r *JsonRpcReq) Send() (interface{}, error) {
    message, err := json.EncodeClientRequest(r.Method, r.Params)
    fmt.Println(string(message))
    if err != nil {
        return nil, err
    }
    ...
}

请求语句为:

req := NewJsonRpcReq("http://finance.test.cppp.com/rpc/healthCheck", "status", nil)

NewJsonRpcReq方法是:

func NewJsonRpcReq(url, method string, params *interface{}) *JsonRpcReq {
    return &JsonRpcReq{Id: 0, Url: url, Method: method, Params: params, JsonRpc: "2.0"}
}

0 个答案:

没有答案