我正在研究使用gorilla web 工具包来创建一个简单的 RPC API。我正在使用他们文档中的示例,我正在Chrome 中使用Advanced Rest Client进行测试并使用http://localhost:1111/api/ 并发布以下 RAW JSON 有效负载:{"method":"HelloService.Say","params":[{"Who":"Test"}]}这到达服务器,我在记录它时知道这一点(见下面的代码),我得到 200 OK 响应。但是我收到“响应不包含任何数据”我期待在下面的 Say 方法中定义的 JSON 回复消息。有没有人对问题是什么有任何建议?package mainimport ( "gorilla/mux" "gorilla/rpc" "gorilla/rpc/json" "log" "net/http") type HelloArgs struct { Who string}type HelloReply struct { Message string}type HelloService struct{}func (h *HelloService) Say(r *http.Request, args *HelloArgs, reply *HelloReply) error { log.Printf(args.Who) reply.Message = "Hello, " + args.Who + "!" log.Printf(reply.Message) return nil}func main() { r := mux.NewRouter() jsonRPC := rpc.NewServer() jsonCodec := json.NewCodec() jsonRPC.RegisterCodec(jsonCodec, "application/json") jsonRPC.RegisterCodec(jsonCodec, "application/json; charset=UTF-8") // For firefox 11 and other browsers which append the charset=UTF-8 jsonRPC.RegisterService(new(HelloService), "") r.Handle("/api/", jsonRPC) http.ListenAndServe(":1111", r)}
- 1 回答
- 0 关注
- 413 浏览
添加回答
举报
0/150
提交
取消