diff --git a/contrib/codecs/http/client.go b/contrib/codecs/http/client.go
index 542879e867dd1e9e59d502667f05367938b8e654..a5412e3127a7050d2653f308d6f1ecb577a77608 100644
--- a/contrib/codecs/http/client.go
+++ b/contrib/codecs/http/client.go
@@ -6,12 +6,13 @@ import (
 	"encoding/json"
 	"errors"
 	"fmt"
-	"gfx.cafe/open/jrpc/pkg/codec"
 	"io"
 	"net/http"
 	"sync/atomic"
 	"time"
 
+	"gfx.cafe/open/jrpc/pkg/codec"
+
 	"gfx.cafe/open/jrpc/pkg/clientutil"
 	"gfx.cafe/util/go/bufpool"
 )
@@ -131,7 +132,7 @@ func (c *Client) BatchCall(ctx context.Context, b ...*codec.BatchElem) error {
 			reqs = append(reqs, codec.NewRequestInt(ctx, id, v.Method, v.Params))
 		}
 	}
-	dat, err := json.Marshal(b)
+	dat, err := json.Marshal(reqs)
 	if err != nil {
 		return err
 	}