我尝试将请求发送到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"}
}