dregduc63699 2018-07-02 09:11
浏览 51

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

I tried to send a request to a RPC interface, but the interface doesn't need params. It means the params field should be "params":[], but when I use json.EncodeClientRequest(method string, args interface{}), the value of params is always "params":[{}] or "params":[null]. So it always causes the error: map[code:-32602 message:Invalid method parameters]. How could I set a null value for params. Next is my request struct:

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

The error of sentence is:

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

The request sentence is:

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

The NewJsonRpcReq method is:

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

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 Vue3 大型图片数据拖动排序
    • ¥15 划分vlan后不通了
    • ¥15 GDI处理通道视频时总是带有白色锯齿
    • ¥20 用雷电模拟器安装百达屋apk一直闪退
    • ¥15 算能科技20240506咨询(拒绝大模型回答)
    • ¥15 自适应 AR 模型 参数估计Matlab程序
    • ¥100 角动量包络面如何用MATLAB绘制
    • ¥15 merge函数占用内存过大
    • ¥15 使用EMD去噪处理RML2016数据集时候的原理
    • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大