From 6d5ae1af5bf5b2f8f365438b3eac845000c4fb46 Mon Sep 17 00:00:00 2001
From: Alex Ellis <alexellis2@gmail.com>
Date: Fri, 20 Oct 2017 12:26:49 +0200
Subject: [PATCH] Fix content type pass through

Signed-off-by: Alex Ellis <alexellis2@gmail.com>
---
 gateway/handlers/proxy.go | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/gateway/handlers/proxy.go b/gateway/handlers/proxy.go
index 95b4412f..eb012a16 100644
--- a/gateway/handlers/proxy.go
+++ b/gateway/handlers/proxy.go
@@ -168,9 +168,12 @@ func invokeService(w http.ResponseWriter, r *http.Request, metrics metrics.Metri
 	clientHeader := w.Header()
 	copyHeaders(&clientHeader, &response.Header)
 
-	// TODO: copyHeaders removes the need for this line - test removal.
-	// Match header for strict services
-	w.Header().Set("Content-Type", r.Header.Get("Content-Type"))
+	header := response.Header.Get("Content-Type")
+	if len(header) > 0 {
+		w.Header().Set("Content-Type", response.Header.Get("Content-Type"))
+	} else {
+		w.Header().Set("Content-Type", r.Header.Get("Content-Type"))
+	}
 
 	writeHead(service, metrics, http.StatusOK, w)
 	w.Write(responseBody)
-- 
GitLab