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

如何启用Spring Boot连接到外部API

云令
2023-03-14

我正在代理服务器后面开发一个Spring Boot应用程序。现在我需要连接到外部API,但我还没有弄清楚要配置什么才能使应用程序连接到外部API,我已经尝试用程序参数传递代理数据,并且已经尝试在Java控制面板中配置代理。如何让应用程序使用代理来访问API?

共有1个答案

柳镜
2023-03-14

您可以使用自定义RestTemplate,示例如下:

YourCustomRestTemplate.java:

class YourCustomRestTemplate implements RestTemplateCustomizer {

    @Override
    public void customize(RestTemplate restTemplate) {
        HttpHost proxy = new HttpHost(PROXY_SERVER_HOST, PROXY_SERVER_PORT);
        HttpClient httpClient = HttpClientBuilder.create()
            .setRoutePlanner(new DefaultProxyRoutePlanner(proxy) {
                @Override
                public HttpHost determineProxy(HttpHost target, HttpRequest request, HttpContext context) throws HttpException {
                    return super.determineProxy(target, request, context);
                }
            })
            .build();
        restTemplate.setRequestFactory(new HttpComponentsClientHttpRequestFactory(httpClient));
    }
}

当您要构建RestTemplate对象以调用API时:

RestTemplate restTemplate = new RestTemplateBuilder(new YourCustomRestTemplate()).build();

ResponseEntity<String> responseEntity = restTemplate.getForEntity("__URL__/get", String.class);
 类似资料:
  • 我正在尝试使用连接到。我正在使用和。 我在Gradle中添加了这些依赖项 配置文件如下所示: 应用yml 我得到了以下错误:

  • 我想连接到树莓Pi节点。我从网络外部设置的js服务器。 我的路由器声称端口是开放的。我尝试在127.0.0.0、0.0.0.0和我的公共IP地址运行服务器。 我曾尝试使用ngrok打开端口8080,服务器在其中托管一个简单的网页,但尝试访问myIP:8080不起作用。 有人能帮我吗?

  • 我已经创建了一个Spring启动应用程序,我没有使用内存中的H2数据库,而是安装了用于H2数据库的exe并在外部使用它。现在我想将我的Spring启动应用程序与这个外部H2数据库连接起来。我已经添加了依赖项,我已经在application.properties文件中添加了所有必需的属性(你可以看到下面)。此外,我还创建了一个带有注释的Entity类。但是当我尝试连接数据库时,它即使使用不同的URL

  • 当我尝试连接本地集群时 这很好用。但是通过连接到外部地址,我如何接收 我如何设置HazelcastClient连接IP? 我已经看过Hazelcast:连接到远程集群,但我找不到如何以编程方式使其

  • 我试图创建一个简单的SpringBoot应用程序来连接和存储数据库中的一些数据,但是当我的代码试图提交一个新对象时,仍然会遇到401禁止消息。 我应该如何使用SpringBoot连接到ArangoDb,以便能够在数据库中保存节点? 我的系统上运行了ArangoDb,我可以在localhost登录到web控制台:http://localhost:8529 我有一个与下面的属性同名的数据库。我还尝试在

  • 我通过向导将 Amazon VPC 设置为“仅公有网络”,因此我的所有实例都位于公有子网中。 在VPC的实例,有弹性的IP分配连接到互联网没有任何麻烦。 但没有弹性IP的实例无法连接任何地方。 存在Internet网关。aws控制台中的路由表如下所示 和路由从内部实例显示 我尝试打开所有入站和出站流量,以0.0.0.0/0实例所属的安全组。仍然没有成功。 我还能做什么?