Boc*_*cky 6 java spring-boot spring-cloud netflix-zuul
我试图用来Zuul将呼叫重定向到其他地方的下游系统。在api重定向中,我需要在Header中添加必要的数据,以接收要处理的重定向。我似乎无法让下游系统检测到此数据。附件是我的代码。我使用Zuul从Edgware.SR3, Spring Boot 1.5.12
Zuul过滤器
@Component
public class RouteFilter extends ZuulFilter{
@Override
public Object run() {
//Testing to add header
context.getRequest().getParameterMap().put("api", new String[]{"api"});
context.getResponse().setHeader("api", api);
context.addZuulResponseHeader("api", "api");
context.addZuulRequestHeader("api", "api");
context.setSendZuulResponse(false);
context.put(FORWARD_TO_KEY, redirect_urls.get(key));
context.setResponseStatusCode(HttpStatus.SC_TEMPORARY_REDIRECT);
context.getResponse().sendRedirect(redirect_urls.get(key));
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
重定向服务代码
@RequestMapping(value = "/forward")
public ResponseEntity<String> forwardToMe(@RequestHeader(required = true, name = "api")String api){
return new ResponseEntity<String>("Hi",HttpStatus.OK);
}
Run Code Online (Sandbox Code Playgroud)
邮递员中收到错误
{“ timestamp”:1524737817729,“ status”:400,“ error”:“ Bad Request”,“ exception”:“ org.springframework.web.bind.ServletRequestBindingException”,“ message”:“缺少请求标头'api'类型为String的方法参数“,” path“:” / forward“}
| 归档时间: |
|
| 查看次数: |
8542 次 |
| 最近记录: |