Как установить нулевое значение для параметров, когда я использую гориллы / RPC / JSON? - PullRequest
0 голосов
/ 02 июля 2018

Я пытался отправить запрос на интерфейс RPC, но для интерфейса не нужны параметры. Это означает, что поле params должно быть "params":[], но когда я использую json.EncodeClientRequest(method string, args interface{}), значение params всегда равно "params":[{}] или "params":[null]. Так что это всегда вызывает ошибку: map[code:-32602 message:Invalid method parameters]. Как я мог установить нулевое значение для params. Далее моя структура запроса:

// 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"}
}
...