Make buffer size configurable

This commit is contained in:
Leonid Bugaev
2015-08-03 18:31:09 +03:00
parent f6864d05a0
commit f92a0b1242
2 changed files with 8 additions and 3 deletions
+6 -1
View File
@@ -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
+2 -2
View File
@@ -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)