Java HttpURLConnection使用SOCKS代理而不是HTTP

Dem*_*urg 2 java windows proxy

我有一个非常简单的代码,它使用HttpURLConnection通过代理访问某些网站

    System.setProperty("java.net.useSystemProxies", "true");
    System.out.println("Proxy: " + ProxySelector.getDefault().select(new URI(urlS)));
    URL url = new URL(urlS);
    HttpURLConnection ic = (HttpURLConnection)url.openConnection();

    ic.connect();
Run Code Online (Sandbox Code Playgroud)

出于某种原因,Java认为我需要SOCKS代理而不是http,抛出以下异常:

ERROR: Can't connect to SOCKS proxy:Connection timed out: connect
Run Code Online (Sandbox Code Playgroud)

ZZ *_*der 5

如果您在Windows上遇到此问题,则可能会遇到Java错误.

Java将任何系统代理设置视为SOCKS.您必须禁用useSystemProxies或不在Windows中使用代理.

如果需要代理,请尝试取消选中"对所有协议使用相同的代理服务器",确保SOCKS代理的字段为空.这解决了我们的问题.