2

私はかなり新しいです。

このパッケージhttps://github.com/kdar/httprpcを使用して、json-rpc v 1.0 リクエストを実行します (golang は 2.0 のみを実装しているため)。

問題があります。私が呼び出しているこのサーバーは、次のように「id」を文字列として返します

"id":"345"

それ以外の

"id":345

私が見つけた唯一の方法は、uint64 の代わりに文字列を使用して clientResponse を再定義することでした

type clientResponse struct {
    Result *json.RawMessage `json:"result"`
    Error  interface{}      `json:"error"`
    Id     string           `json:"id"`
}

そして、全く同じ DecodeClientResponse 関数を再定義して、私の clientResponse を使用します

CallJson の代わりに、(gjson.DecodeClientResponse の代わりに DecodeClientResponse) を呼び出します。

httprpc.CallRaw(address, method, &params, &reply, "application/json",
            gjson.EncodeClientRequest, DecodeClientResponse)

これはかなり醜いと思います。もっとうまくやる方法はありますか?

ありがとう

4

2 に答える 2