当前位置: 首页 > 编程笔记 >

spring cloud zuul修改请求url的方法

滕学义
2023-03-14
本文向大家介绍spring cloud zuul修改请求url的方法,包括了spring cloud zuul修改请求url的方法的使用技巧和注意事项,需要的朋友参考一下

前言

在日常开发中,除了修改请求参数、设置响应header,响应body外,还有一种需求就是url重新,或者是修改url,这里简述一下怎么在zuul修改url。话不多说了,来一起看看详细的介绍吧。

转发配置

demo:
 ribbon:
 NIWSServerListClassName: com.netflix.loadbalancer.ConfigurationBasedServerList
 listOfServers: 192.168.99.100,192.168.99.101
zuul:
 routes:
 demo:
  path: /demo/**
  stripPrefix: true
  serviceId: demo

filter配置

@Component
public class UrlPathFilter extends ZuulFilter{

 @Override
 public String filterType() {
  return FilterConstants.PRE_TYPE;
 }

 @Override
 public int filterOrder() {
  return FilterConstants.PRE_DECORATION_FILTER_ORDER + 1;
 }

 @Override
 public boolean shouldFilter() {
  final String serviceId = (String) RequestContext.getCurrentContext().get("proxy");
  return "demo".equals(serviceId);
 }

 @Override
 public Object run() {
  RequestContext context = RequestContext.getCurrentContext();
  Object originalRequestPath = context.get(FilterConstants.REQUEST_URI_KEY);
  //http://localhost:10000/demo/list/data
  //-->/api/prefix/list/data
  String modifiedRequestPath = "/api/prefix" + originalRequestPath;
  context.put(FilterConstants.REQUEST_URI_KEY, modifiedRequestPath);
  return null;
 }
}

这样就大功告成了

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对呐喊html" target="_blank">教程的支持。

doc

PreDecorationFilter

Dynamically re-route all Zuul proxied requests to single URL

 类似资料:
  • 一、修改请求 在上一步中,我们恢复了截获的请求,没有进行任何更改。当我们在将请求转发到目的地之前修改被拦截的请求时,就会发挥拦截的全部功能。您可以继续上一步中的窗口和已配置的拦截规则。 欢迎来到mitmproxy教程。在本课程中,我们将介绍对截获请求的修改。 点击查看教程 二、影片内容 欢迎来到mitmproxy教程。在本课程中,我们将介绍对截获请求的修改。 我们配置和使用与上一教程中相同的拦截规

  • 问题内容: 让我们建立一个简单的例子: 我如何全局转换发送请求的URL?本质上,我想为每个http请求添加一个URL。 我尝试过的是在应用程序启动时在包含URL的位置设置变量。但这不是我想要我的代码看起来像的样子: 我是否应该考虑研究是否正确?谁能给我一些基本的示例代码? 问题答案: 我有另一种使用带有$ http的请求拦截器的方法,它将在一个公共位置处理所有url。

  • 我正在尝试使用JSoup访问java中的在线api。通过我的浏览器,我可以很好地导航到url,并得到json数据作为回报。但是,如果我使用Jsoup,url会发生更改,并且会从中删除“/api”。例如:https://www.onehash.com/api/archived_contest/122/我可以通过浏览器很好地打开它,但如果我使用jsoup连接到它,url就会变成https://www.

  • 问题内容: 在express.js中,我想在请求对象上为我的每个URI侦听器提供一个附加属性。这将提供协议,主机名和端口号。例如: 我当然可以连接req.protocol,req.host,并以某种方式绕过我的每个URI侦听器的端口号(似乎是req对象中缺少的端口号),但是我希望能够在其中进行他们所有人都可以访问此信息的方式。 此外,主机名在请求之间可能会有所不同(计算机具有多个接口),因此在启动

  • 本文向大家介绍springcloud 中 zuul 修改请求参数信息的方法,包括了springcloud 中 zuul 修改请求参数信息的方法的使用技巧和注意事项,需要的朋友参考一下 Zuul是Netflix出品的一个基于JVM路由和服务端的负载均衡器.   Zuul功能: 认证 压力测试 金丝雀测试 动态路由 负载削减 安全 静态响应处理 主动/主动交换管理 Zuul的规则引擎允许通过任何JVM

  • 问题内容: 我想向页面URL 添加一些参数。我正在加载这样的内容: 如何更改具有相同参数的URL ? 问题答案: 您可以使用HTML5 pushState API来实现。但是,只有最新的浏览器才支持它,而IE9甚至不支持IE。没有办法做到这一点。但是,有一个约定,您将使用location.hash来指示页面的状态已被ajax请求修改的页面。有关如何使用URL散列来表示你的页面上状态的更多信息,你可