zuul怎么根据请求方式?
1、可以考虑一下继承抽象过滤器的方式:com.netflix.zuul.ZuulFilter。关键代码如下图所示:
2、完整代码如下:
package cn.jijicai.springboot;
import com.netflix.zuul.ZuulFilter;
import com.netflix.zuul.context.RequestContext;
import org.springframework.http.HttpMethod;
import org.springframework.stereotype.Component;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@Component
public class RouteFilter extends ZuulFilter {
/**
* 过滤器的逻辑
*/
@Override
public Object run() {
//获取当前请求上下文
RequestContext ctx = RequestContext.getCurrentContext();
//取出当前请求
HttpServletRequest request = ctx.getRequest();
HttpServletResponse response = ctx.getResponse();
try {
if (HttpMethod.GET.name().equals(request.getMethod())) {// GET请求
response.sendRedirect("/path1");
} else if (HttpMethod.POST.name().equals(request.getMethod())) {// POST请求
response.sendRedirect("/path2");
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
public boolean shouldFilter() {
return false;
}
@Override
public String filterType() {
return null;
}
@Override
public int filterOrder() {
return 0;
}
}