我想用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不工作的原因。
有人能帮我指出我遗漏了什么吗?
控制器:
@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:
server:
port: 8080我尝试将以下代码添加到application.yml中,但不起作用。
spring:
cloud:
gateway:
httpclient:
ssl:
useInsecureTrustManager: true发布于 2020-06-02 16:27:56
在我的情况下,这是http头的问题。添加以下代码,然后一切都为我工作。
proxy.sensitive(HttpHeaders.HOST)在默认情况下,ProxyExchange似乎会向下传递http请求头,而在WebClient的情况下,没有默认的http头。
https://stackoverflow.com/questions/60710047
复制相似问题