-Dhttp.proxyHost 和代理设置被 java 忽略

问题描述 投票:0回答:1

带有 feign 的 Java spring boot 忽略代理设置。 像这样启动应用程序:

"C:\Program Files\Zulu\zulu-8\bin\java.exe" -DproxySet=true -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=8888 "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2024.1.1\lib\idea_rt.jar=58189:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2024.1.1\bin" -Dfile.encoding=UTF-8 -classpath C:\Users\me\AppData\Local\Temp\classpath603637298.jar com.me.myproj.Main

当假客户端调用第三方服务时,会忽略代理设置(在我的例子中是 Charles 代理)并直接进行。

注意:它的 spring boot 2.0.3 和 java 8

@EnableFeignClients
@FeignClient(value="some-api", url="${client.some-api}")
public interface SomeApi {
    
    @GetMapping(value = "/someurl", consumes = "application/json")
    public String getSomething(@PathVariable("eventId") String eventId);
}

我们的 application.yml 看起来像这样:

feign:
  client:
    config:
      default:
        connectTimeout: ${FEIGN_CONNECT_TIMEOUT:180000}
        readTimeout: ${FEIGN_READ_TIMEOUT:180000}
        loggerLevel: full

pom.xml

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
            <version>2.0.0.RELEASE</version>
        </dependency>
java proxy
1个回答
0
投票

我认为您使用了错误的代理设置。 对于 FeignClient 你应该使用

-Dfeign.httpclient.enabled=true 
-Dfeign.httpclient.proxy.host=proxy.example.com
-Dfeign.httpclient.proxy.port=8080
© www.soinside.com 2019 - 2024. All rights reserved.