diff --git a/jsonrpc/http.go b/jsonrpc/http.go index 3a0dfb32abdf99b19c8584e5e9707d54fe8ce4b7..3ba0d25edb09d8c1c15373501b95b37115fd481c 100644 --- a/jsonrpc/http.go +++ b/jsonrpc/http.go @@ -115,7 +115,7 @@ func (c *HTTPClient) Call(ctx context.Context, service registry.ServiceURL, req if reqTimeout <= 0 { reqTimeout = 1e8 } - httpHeader.Set("Timeout", fmt.Sprintf("%d", reqTimeout)) + httpHeader.Set("Timeout", reqTimeout.String()) if md, ok := ctx.Value(public.DUBBOGO_CTX_KEY).(map[string]string); ok { for k := range md { httpHeader.Set(k, md[k]) diff --git a/jsonrpc/server.go b/jsonrpc/server.go index 6be864d27f5f0a9d74fcd1ed6c6071a51aeb33dc..5814b52127ae45840aa5ca7ff46c85ada3d32234 100644 --- a/jsonrpc/server.go +++ b/jsonrpc/server.go @@ -9,7 +9,6 @@ import ( "net/http" "runtime" "runtime/debug" - "strconv" "sync" "time" ) @@ -204,9 +203,9 @@ func (s *Server) handlePkg(rpc *serviceMap, conn net.Conn) { ctx := context.Background() if len(reqHeader["Timeout"]) > 0 { - timeout, err := strconv.ParseUint(reqHeader["Timeout"], 10, 64) + timeout, err := time.ParseDuration(reqHeader["Timeout"]) if err == nil { - httpTimeout = time.Duration(timeout) + httpTimeout = timeout ctx, _ = context.WithTimeout(ctx, httpTimeout) } delete(reqHeader, "Timeout")