Я использовал Go's net/rpc
и net/rpc/jsonrpc
пакеты немного для выполнения соединений между процессами Go, однако мне интересно, есть ли способ подключиться к HTTP-серверу JSONRPC, используя только сервер инструментария из стандартной библиотеки (не то, что у меня есть проблема с написанием моего собственного, просто не хочу этого делать, если мне не нужно).golang http + jsonrpc доступ с веб-страницы
Это базовая настройка сервера у меня есть:
arith := new(server.Arith)
server := rpc.NewServer()
server.Register(arith)
server.HandleHTTP(rpc.DefaultRPCPath, rpc.DefaultDebugPath)
listener, e := net.Listen("tcp", ":4321")
if e != nil {
log.Fatal("listen error:", e)
}
defer listener.Close()
http.Serve(listener, http.DefaultServeMux)
И я хотел бы, чтобы быть в состоянии поразить это с веб-страницы или простой командной строки CURL вызов - просто обычный POST.
Однако эта строка: http://golang.org/src/net/rpc/server.go?s=20445:20475#L670 указывает, что он ожидает, что клиент HTTP выдаст CONNECT, а затем напрямую напишет запрос JCON RPC в поток и получит ответ обратно таким же образом. Я не знаю, возможно ли это из браузера, но это, конечно, не так просто или совместимо, как простой POST.
Есть ли способ запустить JSON RPC-сервер, который я могу просто использовать POST для использования хорошего XML-файла XMLHttpRequest?
EDIT: Crap - выше даже не используется материал jsonrpc - это, вероятно, пытается использовать Gob, но что бы то ни было - проблема такая же - код в src/net/rpc/server.go не собирается для обработки POST, поэтому этот маршрут в целом не будет работать независимо от кодека сервера.