java.net.ConnectException : Connection refused with Google Maps

标签 java google-maps-api-3

我遇到技术问题,在 Java 程序内连接到 googleapis 时出现“连接被拒绝”错误

String url = https://maps.googleapis.com/maps/api/geocode/json?address=Ctra.+Ibiza+a+San+Antonio%2C+Km+5%2C+07816+San+Rafael%2C+Illes+Balears%2C+Spain&key=AIzaSyAawKhhK1ieNloq0wogoSTXb-eEwpb-pol

URL url = new URL(url);
URLConnection uc = url.openConnection ();
uc.connect();

错误:

Exception in thread "main" java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.connect0(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:579)
    at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:618)
    at sun.security.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:160)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:180)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:432)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:527)
    at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:275)
    at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:371)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:191)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:932)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:153)

并且代理设置已明确定义:

   Authenticator.setDefault(
                   new Authenticator() {
                      @Override
                      public PasswordAuthentication getPasswordAuthentication() {
                         return new PasswordAuthentication(
                               "estebbe", "5kjk61a".toCharArray());
                      }
                   }
                );

 System.setProperty("http.proxyHost", "127.27.237.33");
 System.setProperty("http.proxyPort", "8022");
 System.setProperty("http.nonProxyHosts", "localhost|127.0.0.1");

并将 URL 输入到浏览器中,效果非常好!

最佳答案

不要使用 URLConnection,而是尝试使用 HttpURLConnection,同时添加以下请求属性。

HttpURLConnection urlConnection = (HttpURLConnection) postURL.openConnection();
urlConnection.addRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36");

关于java.net.ConnectException : Connection refused with Google Maps,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38374899/

相关文章:

java - Xuggler 视频到音频转换

java - 当我通过 Maven 执行 JUnit 测试时,它们不会失败

javascript - 在谷歌地图上绘制圆弧

javascript - 多层谷歌融合表启用MapTips

javascript - 单击 Google Maps API v3 上的监听器事件不起作用

java - Rest API 测试 org.springframework.http.converter.HttpMessageNotReadableException

java - InetAddress.getAllByName() 只接收带有 java.net.preferIPv6Addresses 的 IPv4 地址

java - 更好的数据结构,可以更快地读取 Map of Map of Map of Lists

google-maps - Google map V3 标签对齐

javascript - Google map KML 图层是否包含 map 中心点