check status code before attempting to parse json, log body of error results
diff --git a/apigee_sync.go b/apigee_sync.go index 449780b..cb1242a 100644 --- a/apigee_sync.go +++ b/apigee_sync.go
@@ -269,17 +269,19 @@ log.Errorf("Unable to Connect to Edge Proxy Server: %v", err) continue } - defer resp.Body.Close() - if resp.StatusCode != 200 { - log.Errorf("Oauth Request Failed with Resp Code: %v", resp.StatusCode) - continue - } + body, err := ioutil.ReadAll(resp.Body) + resp.Body.Close() if err != nil { log.Errorf("Unable to read EdgeProxy Sever response: %v", err) continue } + if resp.StatusCode != 200 { + log.Errorf("Oauth Request Failed with Resp Code: %d. Body: %s", resp.StatusCode, string(body)) + continue + } + var oauthResp oauthTokenResp log.Debugf("Response: %s ", body) err = json.Unmarshal(body, &oauthResp) @@ -464,6 +466,11 @@ continue } + if r.StatusCode != 200 { + log.Errorf("Snapshot server conn failed. HTTP Resp code %d", r.StatusCode) + continue + } + // Decode the Snapshot server response var resp common.Snapshot err = json.NewDecoder(r.Body).Decode(&resp) @@ -483,11 +490,6 @@ } } - if r.StatusCode != 200 { - log.Errorf("Snapshot server conn failed. HTTP Resp code %d", r.StatusCode) - continue - } - log.Info("Emitting Snapshot to plugins") events.Emit(ApigeeSyncEventSelector, &resp)