From ad6f426782222c48a32639c1b21a4ab5c6d13603 Mon Sep 17 00:00:00 2001 From: StephanHCB Date: Mon, 17 Oct 2022 16:06:26 +0200 Subject: [PATCH] #9 - allow access to raw byte slice of response --- implementation/httpclient/httpclient.go | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/implementation/httpclient/httpclient.go b/implementation/httpclient/httpclient.go index d2e0bdd..9fe5977 100644 --- a/implementation/httpclient/httpclient.go +++ b/implementation/httpclient/httpclient.go @@ -148,10 +148,15 @@ func (c *HttpClientImpl) Perform(ctx context.Context, method string, requestUrl } if len(responseBody) > 0 && response.Body != nil { - err := json.Unmarshal(responseBody, response.Body) - if err != nil { - c.ResponseMetricsCallback(ctx, method, requestUrl, response.Status, err, c.Now().Sub(response.Time), len(responseBody)) - return aurestnontripping.New(ctx, err) + switch response.Body.(type) { + case **[]byte: + *(response.Body.(**[]byte)) = &responseBody + default: + err := json.Unmarshal(responseBody, response.Body) + if err != nil { + c.ResponseMetricsCallback(ctx, method, requestUrl, response.Status, err, c.Now().Sub(response.Time), len(responseBody)) + return aurestnontripping.New(ctx, err) + } } c.ResponseMetricsCallback(ctx, method, requestUrl, response.Status, nil, c.Now().Sub(response.Time), len(responseBody)) } else {