关于springCloud组件open-feign的隔离配置代理问题,请教一下

现在需要使用open-feign去调用一个第三方接口,而且这个第三接口还要使用代理配置才能调通,内部使用的httpclinet5作为客户端,现在就是需要为这个第三方的接口的feign单独配置一套,还不能影响其他的feign,这个需要怎么做,网上搜的都不行,那些都要使用@Configuration这个注解,会导致全局生效,影响到其他的feign

3 Likes

为啥要用open feign去调第三方呢,用resttemplate就可以了吧

2 Likes

之前是使用okHttp做的,现在要改成feign

1 Like

虽然我是搞java的,但是我只会if和for,不懂帮顶

干了6-7年Java了 我至今项目都没用过cloud体系

文心的回答,感觉有点对头,试试:https://yiyan.baidu.com/share/nHtpY0GFxn

嗯我感觉吧 这个问题只需要单独声明一个 feign的配置bean就行 然后在需要的FeignClient配置上声明这个特殊的配饰bean 应该问题不大,如果有问题,那就当我没说

:joy:这么舒服

因为进的公司体量都不至于用到分布式微服务的····

问题就是如何在拦截器器里面设置代理

@Bean  
    public RequestInterceptor requestInterceptor() {  
        return template -> {  
            // 这里添加代理配置,比如设置代理主机和端口  
            // 注意:这里只是一个示例,具体实现可能依赖于你使用的HttpClient  
            System.setProperty("http.proxyHost", "proxy.example.com");  
            System.setProperty("http.proxyPort", "8080");  
        };  
    }

我去,使用系统设置,那不就全部都用了代理了

对啊,还不能这样,操作

https://www.jb51.net/article/253541.htm 这个看一下,不知道行不行

@Configuration这种都是全局配置,老难受了

喜欢hutools梭哈

写一个配置类A.class, Feign.builder().client(new Client.Proxied(null,null,new Proxy(Proxy.Type.HTTP, new InetSocketAddress(“localhost”, 8080)))).build(); 然后@FeignClient(configuration = A.class)不行吗?官网文档上写的是不需要加@Configuration注解。


https://cloud.spring.io/spring-cloud-netflix/multi/multi_spring-cloud-feign.html

使用ProxySelector实现指定域名走代理,其他默认直连就行了

今天刚好在学这个,但是好像没看懂你描述的是什么意思

我尝试一下