diff --git a/spring-cloud-function-adapters/spring-cloud-function-adapter-gcp/src/main/java/org/springframework/cloud/function/adapter/gcp/FunctionInvoker.java b/spring-cloud-function-adapters/spring-cloud-function-adapter-gcp/src/main/java/org/springframework/cloud/function/adapter/gcp/FunctionInvoker.java index c921291de..062787d84 100644 --- a/spring-cloud-function-adapters/spring-cloud-function-adapter-gcp/src/main/java/org/springframework/cloud/function/adapter/gcp/FunctionInvoker.java +++ b/spring-cloud-function-adapters/spring-cloud-function-adapter-gcp/src/main/java/org/springframework/cloud/function/adapter/gcp/FunctionInvoker.java @@ -121,6 +121,7 @@ public class FunctionInvoker implements HttpFunction, RawBackgroundFunction { if (result != null) { MessageHeaders headers = result.getHeaders(); + httpResponse.setContentType(result.getHeaders().get(MessageHeaders.CONTENT_TYPE).toString()); httpResponse.getWriter().write(new String(result.getPayload(), StandardCharsets.UTF_8)); for (Entry header : headers.entrySet()) { Object values = header.getValue(); diff --git a/spring-cloud-function-adapters/spring-cloud-function-adapter-gcp/src/test/java/org/springframework/cloud/function/adapter/gcp/FunctionInvokerHttpTests.java b/spring-cloud-function-adapters/spring-cloud-function-adapter-gcp/src/test/java/org/springframework/cloud/function/adapter/gcp/FunctionInvokerHttpTests.java index eff309bfb..c178414ae 100644 --- a/spring-cloud-function-adapters/spring-cloud-function-adapter-gcp/src/test/java/org/springframework/cloud/function/adapter/gcp/FunctionInvokerHttpTests.java +++ b/spring-cloud-function-adapters/spring-cloud-function-adapter-gcp/src/test/java/org/springframework/cloud/function/adapter/gcp/FunctionInvokerHttpTests.java @@ -89,6 +89,7 @@ public class FunctionInvokerHttpTests { } + @Test public void testJsonInputFunction() throws Exception { @@ -103,8 +104,22 @@ public class FunctionInvokerHttpTests { assertThat(writer.toString()).isEqualTo(gson.toJson(expectedOutput)); + } + + @Test + public void testWithKanji() throws Exception { + + FunctionInvoker handler = new FunctionInvoker(JsonInputFunction.class); + + String expectedOutput = "Thank you for sending the message: 森林"; + IncomingRequest input = new IncomingRequest("森林"); + + when(request.getReader()).thenReturn(new BufferedReader(new StringReader(gson.toJson(input)))); + handler.service(request, response); + bufferedWriter.close(); + assertThat(writer.toString()).isEqualTo(gson.toJson(expectedOutput)); } @Test