響應我使用gorilla web toolkit創建一個簡單的RPC API調查。我使用的是從他們的文檔的例子,我測試使用Advanced Rest Client在Chrome和使用沒有從大猩猩/ RPC JSON RPC服務
http://localhost:1111/api/
和POST以下RAW JSON有效載荷:
{"method":"HelloService.Say","params":[{"Who":"Test"}]}
這到達服務器,我知道這當我記錄它時(見下面的代碼),我得到了200 OK響應。但是我得到「響應不包含任何數據」
我期待的是在下面的說法定義的JSON回覆消息。有沒有人對這個問題有什麼建議?
package main
import (
"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.縮進你的代碼 2.檢查返回的錯誤 3.嘗試再次 – thwd
你有沒有得到這個工作? – rem7