广告
返回顶部
首页 > 资讯 > 后端开发 > Python >使用feign配置网络ip代理
  • 652
分享到

使用feign配置网络ip代理

2024-04-02 19:04:59 652人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录feign配置网络ip代理问题描述1.依赖2.feignclinet接口3.Config4.yml调用指定ip的feign接口feign配置网络ip代理 问题描述 测试环境将需要

feign配置网络ip代理

问题描述

测试环境将需要访问的外网地址加入了白名单,但是Docker和宿主机网络不一样(试过挂载宿主机网络也不行,但是挂载宿主机网络会打乱原有的网络环境),所以造成了在宿主机上面可以访问该地址,但是docker里面是访问不到外网的地址,所使用feign的时候加上ip代理,代理宿主机ip来对外网地址进行访问!

为什么不直接对docker设置网络代理,测试环境里面基本都是内部服务调用,如果设置则会导致其网络不一致,并且开发测试正式环境较为复杂,如果不需要的时候直接在配置文件配置为null就行

1.依赖

<dependency>
    <groupId>org.apache.Httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.10</version>
</dependency>
<dependency>
     <groupId>io.GitHub.openfeign</groupId>
      <artifactId>feign-okhttp</artifactId>
</dependency>
//可能还需要feign相关依赖 feign-okhttp主要用来做网络代理,依赖需要自行百度

2.feignclinet接口

import io.swagger.annotations.apiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.WEB.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;

@FeignClient(url = "http://xxx.xxx.xxx.xxx:8090" ,name = "slmodel-one")
public interface SlModelOneClient {
    @ApiOperation("XXXXXXX")
    @RequestMapping(
            method = RequestMethod.GET,
            value = "/efdcserver/efdcserver/getEfdcCodeByProjectName",
            consumes = "application/JSON;charset=UTF-8",
            produces = MediaType.APPLICATION_jsON_UTF8_VALUE)
    List<JsonAreaCode> getEfdcCodeByProjectName(
            @RequestParam("projectName") String projectName);
    @ApiOperation("XXXXXXX")
    @RequestMapping(
            method = RequestMethod.POST,
            value = "/efdcserver/hydro/getDepthMapByPost?efdcCode={efdcCode}&planName={planName}",
            consumes = "application/json;charset=UTF-8",
            produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    DepthMap getDepthMapByPost(
            @PathVariable(name="efdcCode") String efdcCode,
            @PathVariable(name ="planName")String planName);
    @ApiOperation("XXXXXXX")
    @RequestMapping(
            method = RequestMethod.GET,
            value = "/efdcserver/hydro/getPoint?planName={planName}&efdcCode={efdcCode}&lgtd={lgtd}&lttd={lttd}",
            consumes = "application/json;charset=UTF-8",
            produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    DepthMap getPointDepthByGet(
            @PathVariable(name ="planName")String planName,
            @PathVariable(name="efdcCode") String efdcCode ,
            @PathVariable(name ="lotd")Double lgtd,
            @PathVariable(name ="lttd")Double lttd);
}

3.Config

import okhttp3.*;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.commons.httpclient.DefaultOkHttpClientFactory;
import org.springframework.cloud.commons.httpclient.OkHttpClientFactory;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.io.IOException;
import java.net.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Set;

@Configuration
@EnableFeignClients(basePackages = "com.ceshi..map.client")
public class Config {
    @Value("${proxy.host}")
    private String proxyHost;
    @Value("${proxy.port}")
    private Integer proxyPort;
    @Value("#{'${proxy.domains}'.split(',')}")
    private Set<String> domainList;
    @Bean
    public OkHttpClientFactory okHttpClientFactory(OkHttpClient.Builder builder) {
        return new ProxyOkHttpClientFactory(builder);
    }
    class ProxyOkHttpClientFactory extends DefaultOkHttpClientFactory {
        public ProxyOkHttpClientFactory(OkHttpClient.Builder builder) {
            super(builder);
            //如果配置文件中的代理信息为null 则该代理ip配置不生效
            if(proxyHost!=null&&proxyPort!=null&&domainList!=null) {
                Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(proxyHost, proxyPort));
                List<Proxy> proxyList = new ArrayList<>(1);
                proxyList.add(proxy);
                builder.proxySelector(new ProxySelector() {
                    @Override
                    public List<Proxy> select(URI uri) {
                        if (uri == null || !domainList.contains(uri.getHost())) {
                            return Collections.singletonList(Proxy.NO_PROXY);
                        }
                        return proxyList;
                    }
                    @Override
                    public void connectFailed(URI uri, SocketAddress sa, IOException ioe) {
                    }
                });
            }
        }
    }
}

4.yml

使用IP代理

feign:
 okhttp:
  enabled: true
proxy:
 host: 199.168.233.32 //需要代理的ip
 port: 4444
 domains: 222.222.231.116,222.222.231.117 //需要访问的地址 host 如果多个 用逗号分割

不使用IP代理

feign:
 okhttp:
  enabled: true
proxy:
 host: null
 port: null
 domains: null

调用指定ip的feign接口

@FeignClient(value = “center-educational-server”,url=“http://127.0.0.1:10005”)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: 使用feign配置网络ip代理

本文链接: https://www.lsjlt.com/news/153016.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 使用feign配置网络ip代理
    目录feign配置网络ip代理问题描述1.依赖2.feignclinet接口3.Config4.yml调用指定ip的feign接口feign配置网络ip代理 问题描述 测试环境将需要...
    99+
    2022-11-13
  • 怎么使用feign配置网络ip代理
    今天小编给大家分享一下怎么使用feign配置网络ip代理的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。feign配置网络ip...
    99+
    2023-07-02
  • kali linux配置网络代理
    一、命令行终端   进入/etc/profile.d目录,新建文件proxy.sh ,内容如下 ┌──(kali㉿kali)-[/etc/profile.d]└─$ cat proxy.sh export proxy="htt...
    99+
    2023-08-31
    linux 服务器 运维
  • Android Studio 配置网络代理(HTTP Proxy)
    Android Studio 配置网络代理(HTTP Proxy) 近年来,移动应用开发领域蓬勃发展,Android Studio作为一款功能强大的集成开发环境备受开发者青睐。然而,在某些情况下,我们...
    99+
    2023-09-24
    网络 android studio http Android
  • 没有网络可以使用代理IP上网吗
    本篇内容主要讲解“没有网络可以使用代理IP上网吗”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“没有网络可以使用代理IP上网吗”吧!因为没有网络所以不能上网,所以想用代理IP上网,结果当然不能如愿...
    99+
    2023-06-20
  • 怎么用CCProxy配置网络代理服务器
    使用CCProxy配置网络代理服务器的步骤如下: 下载和安装CCProxy软件:在官方网站(http://www.youngzs...
    99+
    2023-10-23
    CCProxy 服务器
  • 阿里云服务器ip代理上网配置
    一、选择阿里云服务器ip代理 在选择阿里云服务器ip代理时,需要注意几点: IP代理服务商的可靠性。选择一家可信赖的IP代理服务商,可以有效降低上网风险,同时也可以提高网站的安全性。 IP代理服务商的服务范围。不同的IP代理服务商提供的...
    99+
    2023-10-27
    阿里 服务器 ip
  • 怎么用代理ip玩网络游戏
    本篇内容介绍了“怎么用代理ip玩网络游戏”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!代理IP是IP交换最方便的软件,许多网络工作者正在使用...
    99+
    2023-06-25
  • 网络爬虫结合ip代理的使用方法
    这篇文章主要讲解了“网络爬虫结合ip代理的使用方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“网络爬虫结合ip代理的使用方法”吧!说到网络爬虫,大家都会很熟悉,因为网络爬虫实际上一直在我们...
    99+
    2023-06-20
  • Ubuntu使用netplan配置网络
    Ubuntu使用netplan配置网络 netplan简介配置DHCP配置静态IP地址netplan常用方法生成网络配置文件以调试模式生成网络配置文件 尝试应用网络配置应用网络配置以调试...
    99+
    2023-09-17
    ubuntu netplan 静态IP 固定IP
  • 用代理ip怎么缓解网络卡顿
    本篇内容主要讲解“用代理ip怎么缓解网络卡顿”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“用代理ip怎么缓解网络卡顿”吧!如今看视频成了网友日常的嗜好,大部分时间看的流畅还行,但是卡住不动的问题...
    99+
    2023-06-25
  • 代理ip在网络工作有什么用
    这篇文章给大家分享的是有关代理ip在网络工作有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、如果想改变方便的网络ip方式,不要错过代理服务器。如今,随着互联网的不断发展,越来越多的人开始从事网络工作。i...
    99+
    2023-06-20
  • 网红是如何使用代理ip进行网络营销的
    本篇内容介绍了“网红是如何使用代理ip进行网络营销的”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!许多人也许只听说过ip代理,不知道换ip能...
    99+
    2023-06-25
  • 如何优雅的给Docker配置网络代理
    这篇文章主要介绍了如何优雅的给Docker配置网络代理,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。有时因为网络原因,比如公司 NAT,或其它啥的,需要使用代理。Docker...
    99+
    2023-06-15
  • 使用代理ip怎么实现网络防御功能
    这篇文章给大家介绍使用代理ip怎么实现网络防御功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。在不同地区部署代理ip节点,使访问者能够快速连接到附近的节点,使访问者能够更快地访问站点,CDN缓存能够进一步提高站点的访...
    99+
    2023-06-15
  • 网络在线代理ip的使用场景有哪些
    这篇文章主要讲解了“网络在线代理ip的使用场景有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“网络在线代理ip的使用场景有哪些”吧!现如今,优化SEO、数据分析、数据爬取、市场推广等操作...
    99+
    2023-06-20
  • 网络爬虫使用代理ip的意义是什么
    这篇文章主要讲解了“网络爬虫使用代理ip的意义是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“网络爬虫使用代理ip的意义是什么”吧!从上面的回答中可以看出,如果要提高效率。要大量收集,实...
    99+
    2023-06-20
  • 使用网络代理ip需要注意什么问题
    本篇内容介绍了“使用网络代理ip需要注意什么问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!我们可以找到很多网络代理ip,但是在具体的选择...
    99+
    2023-06-20
  • 代理IP对网络推广有什么作用
    本篇内容介绍了“代理IP对网络推广有什么作用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!我们在做网络营销推广的时候,一定要在一些平台上发布...
    99+
    2023-06-20
  • 蓝叠模拟器adb连接并配置网络代理
    说在前面: 由于配置wsl导致原模拟器失效,选择了蓝叠模拟器(下载安装器后会自动配置为Hyper-v版本)蓝叠国际不能自动配置root,需要手动破解,此处选择的是蓝叠中国(二者可以同时安装并共存,也可以单独卸载)使用SSR打开局域网共享功...
    99+
    2023-09-13
    android adb
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作