You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shenyu.apache.org by xi...@apache.org on 2022/01/05 14:23:06 UTC
[incubator-shenyu] branch master updated: [type: refactor] optimize content-type. (#2713)
This is an automated email from the ASF dual-hosted git repository.
xiaoyu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-shenyu.git
The following commit(s) were added to refs/heads/master by this push:
new 97f488b [type: refactor] optimize content-type. (#2713)
97f488b is described below
commit 97f488b6eadbbf5fd2cb0e640fdf4ec8c181e8d9
Author: Qicz <qi...@gmail.com>
AuthorDate: Wed Jan 5 22:22:56 2022 +0800
[type: refactor] optimize content-type. (#2713)
---
.../java/org/apache/shenyu/plugin/api/result/ShenyuResult.java | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/shenyu-plugin/shenyu-plugin-api/src/main/java/org/apache/shenyu/plugin/api/result/ShenyuResult.java b/shenyu-plugin/shenyu-plugin-api/src/main/java/org/apache/shenyu/plugin/api/result/ShenyuResult.java
index 9da7919..bd66073 100644
--- a/shenyu-plugin/shenyu-plugin-api/src/main/java/org/apache/shenyu/plugin/api/result/ShenyuResult.java
+++ b/shenyu-plugin/shenyu-plugin-api/src/main/java/org/apache/shenyu/plugin/api/result/ShenyuResult.java
@@ -17,11 +17,15 @@
package org.apache.shenyu.plugin.api.result;
+import org.apache.shenyu.common.constant.Constants;
import org.apache.shenyu.common.utils.JsonUtils;
import org.apache.shenyu.common.utils.ObjectTypeUtils;
import org.springframework.http.MediaType;
+import org.springframework.web.reactive.function.client.ClientResponse;
import org.springframework.web.server.ServerWebExchange;
+import java.util.Objects;
+
/**
* The interface shenyu result.
*/
@@ -62,6 +66,10 @@ public interface ShenyuResult<T> {
* @return the context type
*/
default MediaType contentType(ServerWebExchange exchange, Object formatted) {
+ final ClientResponse clientResponse = exchange.getAttribute(Constants.CLIENT_RESPONSE_ATTR);
+ if (Objects.nonNull(clientResponse) && clientResponse.headers().contentType().isPresent()) {
+ return clientResponse.headers().contentType().get();
+ }
return MediaType.APPLICATION_JSON;
}