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)