首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >spring-cloud-gateway webflux ProxyExchange返回404

spring-cloud-gateway webflux ProxyExchange返回404
EN

Stack Overflow用户
提问于 2020-03-17 00:53:38
回答 1查看 1K关注 0票数 0

我想用spring-cloud-gateway创建一个简单的代理和聚合服务器。我正在使用dependency spring-cloud-gateway-webflux和ProxyExchange来做这件事。我在localhost中启动应用程序,并从浏览器启动它,但是,它返回404 not found。

如果我使用spring-cloud-gateway-mvc而不是spring-cloud-gateway-webflux,令人惊讶的是,代理可以工作,并且我可以在我的本地主机中浏览stackoverflow。但我仍然想找出spring-cloud-gateway-webflux不工作的原因。

有人能帮我指出我遗漏了什么吗?

控制器:

代码语言:javascript
复制
@RestController
public class RouteController {
    @RequestMapping(value="/**", method={ RequestMethod.GET, RequestMethod.POST })
    public Mono<ResponseEntity<byte[]>> proxy(ServerHttpRequest request, ServerHttpResponse response, ProxyExchange<byte[]> proxy) throws Exception {
        String path = proxy.path("/");
        if (request.getMethodValue().startsWith("GET")) {
            return proxy.uri("https://stackoverflow.com/" + path).get();
        } else {
            return proxy.uri("https://stackoverflow.com/" + path).post();
        }
    }
}

application.yml:

代码语言:javascript
复制
server:
  port: 8080

我尝试将以下代码添加到application.yml中,但不起作用。

代码语言:javascript
复制
spring:
  cloud:
    gateway:
      httpclient:
        ssl:
          useInsecureTrustManager: true
EN

回答 1

Stack Overflow用户

发布于 2020-06-02 16:27:56

在我的情况下,这是http头的问题。添加以下代码,然后一切都为我工作。

代码语言:javascript
复制
proxy.sensitive(HttpHeaders.HOST)

在默认情况下,ProxyExchange似乎会向下传递http请求头,而在WebClient的情况下,没有默认的http头。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60710047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档