当前位置: 首页 > 知识库问答 >
问题:

选择目标主机后假装功能区请求拦截

酆鸿哲
2023-03-14

我目前正在做的(这是非常简单和方便的方式):

Feign.builder()
.client(RibbonClient.create())
...
.requestInterceptor(new MyInterceptor())

但是拦截发生在ribbon实际解析目标主机之前。问题是,我要添加的标题必须基于目标主机的名称来创建。

在主机解析后,是否还有其他方法可以操作头?

共有1个答案

万博涛
2023-03-14

我找到了这个问题的以下解决方案。我使用RibbonClient委托,而不是使用伪装拦截器:

Feign.builder()
.client(RibbonClient.builder().delegate(new MyDelegate())
...

MyDelegate扩展了feign.Client。默认类并重写<code>公共响应执行(Request-Request,Request.Options选项)

这样我可以通过URI.create(request.url()). getHost()访问目标主机。

然后,我创建新请求,添加我的头,并运行< code>super.execute(newRequest,options)作为最后一条指令。

 类似资料:
  • 问题内容: 有没有一种方法可以随机选择一个功能? 例: 上面的代码似乎执行所有3个功能,而不仅仅是随机选择的一个。正确的方法是什么? 问题答案: Python函数是一流的对象:您可以按名称引用它们,而无需调用它们,然后在以后调用它们。 在您的原始代码中,您要调用这三个代码,然后在结果中随机选择。在这里,我们随机选择一个函数,然后调用它。

  • 我试图让用户从JSF中的下拉列表中选择一个集合项。这是我正在使用的代码: 这是MyBean的代码: 如果需要,我的getter和setter为用户: 我的问题是,当它打印“所选用户是”时,没有写入用户。toString(),但用户列表。toString()!就像SelectOne菜单一样,它的设置不正确,但我已经搜索了很多。有人能帮忙吗?谢谢,安

  • 我是一些API的客户端,需要在每个请求中发送令牌,为了获得这个令牌,我需要访问发送用户名和密码,并考虑使用请求拦截器来解决这个问题。但是每个请求的用户名和密码是不同的,有一些方法可以在假请求拦截器中使用动态值,或者在每次API调用之前,我需要使用普通的假客户端调用? 我有一个来访问此令牌API 我不确定在构建假客户端以设置每个请求的用户时如何添加这个拦截器

  • 一、拦截请求 mitmproxy的强大功能是拦截请求。拦截的请求将暂停,以便用户可以在将请求发送到服务器之前修改(或丢弃)该请求。mitmproxy的set intercept命令配置拦截。i默认情况下,该命令绑定到快捷方式。 通常不希望拦截所有请求,因为它会不断中断您的浏览。因此,mitmproxy希望将流过滤器表达式作为set intercept选择性拦截请求的第一个参数。在下面的教程中,我们

  • 假客户端支持可选请求参数吗? 例如,我有一个endpoint,但我没有找到一种方法,可以使用feign client使param1成为可选的。

  • 我遇到了以下问题:在起飞前的OPTIONS请求成功后,随后的POST请求失败。这有点违反直觉,因为一旦选项成功,随后的请求应该被接受。 流程如下: 响应头 后请求 发布响应(通知是返回200,我实际上看到了结果内容,所以后端可以请求) 错误消息 请求的资源上不存在“Access Control Allow Origin”标头。起源'http://localhost:4200因此,不允许访问。