go - 当我使用 gorilla/rpc/json 时如何为参数设置空值?
问题描述
我尝试向 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"}
}
解决方案
推荐阅读
- winappdriver - 如何在 Win App 驱动程序中启动单击一次应用程序?
- javascript - 使用 Stripe Payment Intent 自定义支付流程传递额外的客户详细信息
- javascript - 如何在 axios [REACT, EXPRESS,NODE JS] 中访问 403 的响应 statusText
- python-3.x - 未找到模块错误:没有模块名称 matplotlib
- json - 在 sed 中减法我在哪里犯了错误?
- awk - 使用 awk 解析在 CRLF 之前有 8 个二进制字符的文件
- java - Java 集合接口动态调度
- c - 如何使用 free() 或任何其他方法从指针数组的中间删除元素?
- delphi - Delphi 10.3 错误无法解析单元名称“ActiveX”
- c++ - 分段错误 | 计算阶乘 | 超出索引