猿问

使用 curl 连接到 Go RPC

我使用此处列出的基本说明创建了一个 RPC 服务器:https : //golang.org/pkg/net/rpc/。我正在构建一个可能不在 Go 中与 RPC 服务器通信的应用程序,并且很好奇如何使用 curl 或其他任何东西手动连接到服务器。


我试过了:


curl -v -X CONNECT --url localhost:1234/_goRPC

但我得到的输出是:


* Hostname was NOT found in DNS cache

*   Trying ::1...

* Connected to localhost (::1) port 1234 (#0)

> CONNECT /_goRPC HTTP/1.1

> User-Agent: curl/7.37.1

> Host: localhost:1234

> Accept: */*

>

< HTTP/1.1 404 Not Found

< Content-Type: text/plain; charset=utf-8

< Date: Tue, 29 Sep 2015 15:04:29 GMT

< Content-Length: 19

<

404 page not found

* Connection #0 to host localhost left intact

这主要是为了理解如何以不可知的方式连接到它的语言,将来我很可能会使用任何语言的库来与服务器进行通信。


编辑:对于上面的错误,url实际上是localhost:1234/ goRPC


但问题仍然是如何创建一个 curl 请求,该请求执行与客户端执行的链接https://golang.org/pkg/net/rpc/中相同的功能。方法调用和参数如何序列化并放置在 CONNECT 请求中


哔哔one
浏览 307回答 1
1回答

Qyouu

对于任何想知道的人来说,使用 rpc/jsonrpc 库中的 JSONRPC 更容易,并且 curl 请求如下所示:curl&nbsp;-X&nbsp;CONNECT&nbsp;--url&nbsp;<url>/_goRPC_&nbsp;-d&nbsp;'{"method":"your&nbsp;rpc&nbsp;method","params":["args"],"id":<some&nbsp;number&nbsp;to&nbsp;represent&nbsp;your&nbsp;request>}'
随时随地看视频慕课网APP

相关分类

Go
我要回答