diff --git a/contrib/codecs/http/codec.go b/contrib/codecs/http/codec.go index 513f6b826a7d4ae52339ecd8f07ab02f3b04cb26..8d91865921d7851f88a1e2c021031ebdb984f9f9 100644 --- a/contrib/codecs/http/codec.go +++ b/contrib/codecs/http/codec.go @@ -11,6 +11,7 @@ import ( "mime" "net/http" "net/url" + "strings" "gfx.cafe/open/jrpc/pkg/codec" ) @@ -91,7 +92,7 @@ func (r *Codec) doReadGet() (msgs json.RawMessage, err error) { return req.MarshalJSON() } -func (r *Codec) doReadPut() (msgs json.RawMessage, err error) { +func (r *Codec) doReadRPC() (msgs json.RawMessage, err error) { method_up := r.r.URL.Query().Get("method") if method_up == "" { method_up = r.r.URL.Path @@ -148,11 +149,11 @@ func (c *Codec) doRead() { go func() { var data json.RawMessage // TODO: implement eventsource - switch c.r.Method { + switch strings.ToUpper(c.r.Method) { case http.MethodGet: data, err = c.doReadGet() - case http.MethodPut: - data, err = c.doReadPut() + case "RPC": + data, err = c.doReadRPC() case http.MethodPost: data, err = io.ReadAll(c.r.Body) }