From f92a0b1242c7fc759276a8a348d7b71049e2c986 Mon Sep 17 00:00:00 2001 From: Leonid Bugaev Date: Mon, 3 Aug 2015 18:31:09 +0300 Subject: [PATCH] Make buffer size configurable --- http_client.go | 7 ++++++- http_client_test.go | 4 ++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/http_client.go b/http_client.go index 3b615f1..917c084 100644 --- a/http_client.go +++ b/http_client.go @@ -22,6 +22,7 @@ type HTTPClientConfig struct { Debug bool OriginalHost bool Timeout time.Duration + ResponseBufferSize int } type HTTPClient struct { @@ -48,11 +49,15 @@ func NewHTTPClient(baseURL string, config *HTTPClientConfig) *HTTPClient { config.Timeout = 5 * time.Second } + if config.ResponseBufferSize == 0 { + config.ResponseBufferSize = 512*1024 // 500kb + } + client := new(HTTPClient) client.baseURL = u.String() client.host = u.Host client.scheme = u.Scheme - client.respBuf = make([]byte, 512*1024) // 500kb + client.respBuf = make([]byte, config.ResponseBufferSize) client.config = config return client diff --git a/http_client_test.go b/http_client_test.go index 1aa0e51..d14d5be 100644 --- a/http_client_test.go +++ b/http_client_test.go @@ -91,7 +91,7 @@ func TestHTTPClientResponseBuffer(t *testing.T) { server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - size := 1 * 1024 * 1024 // 1 MB + size := 10 * 1024 // 10kb rb := make([]byte, size) rand.Read(rb) @@ -100,7 +100,7 @@ func TestHTTPClientResponseBuffer(t *testing.T) { wg.Done() })) - client := NewHTTPClient(server.URL, &HTTPClientConfig{Debug: false}) + client := NewHTTPClient(server.URL, &HTTPClientConfig{Debug: false, ResponseBufferSize: 1024}) wg.Add(2) client.Send(payload)