Набор соединения jsonrpc с биткойнами - PullRequest
3 голосов
/ 06 июля 2011
package main

import "rpc/jsonrpc"
import "fmt"

func main() {
    rc, e := jsonrpc.Dial("tcp", "user:pass@localhost:8332")
    if e != nil {fmt.Print(e);return;}

    var blocks float64
    rc.Call("getblockcount", "", &blocks)
    if e != nil {fmt.Print(e); return;}
    fmt.Print("%f blocks", blocks)
}

дает мне следующую ошибку: dial tcp user:pass@localhost:8332: too many colons in address user:pass@localhost:8332

Как мне проверить подлинность моего rpc-соединения?

Ответы [ 2 ]

2 голосов
/ 06 июля 2011
testRequest := `{"jsonrpc": "1.0", "id":"", "method": "help", "params": []}`

request, e := http.NewRequest("POST", brpc.addr, strings.NewReader(testRequest))
request.SetBasicAuth(brpc.user, brpc.pass)

responce, e := brpc.c.Do(request)
// responce.Body has the result
2 голосов
/ 06 июля 2011

Пакет Go rpc / jsonrpc (а в более общем случае - пакет rpc) не поддерживает аутентификацию .Допустимая строка для jsonrpc.Dial может быть найдена в документации для второго аргумента базовой функции net.Dial .

Но я думаю, что вы также делаете большое предположение, чток какой системе вы пытаетесь подключиться (возможно, к биткойнам?) поддерживает протокол Go jsonrpc, который - если он не написан на Go - почти наверняка не поддерживает.

...