2

我在这里遇到了一个奇怪的问题,

当我从 Web 浏览器或 java 命令行在 url 下面运行时

http://maps.googleapis.com/maps/api/distancematrix/json?origins=416%2063,Sweden&destinations=424%2069,Stor%C3%A5s%20Industrigatan%2020,Angered,G%C3%B6teborg&sensor=false

我得到以下结果。

{
  "destination_addresses" : [ "Storås Industrigata 20, 424 69
Angered, Sweden" ],
  "origin_addresses" : [ "Gothenburg, Sweden" ],
  "rows" : [
     {
        "elements" : [
           {
              "distance" : {
                 "text" : "10.4 km",
                 "value" : 10388
              },
              "duration" : {
                 "text" : "15 mins",
                 "value" : 924
              },
              "status" : "OK"
           }
       ]
     }
  ],
  "status" : "OK"
}    

但是当我从 glassfish 服务器运行相同的 url 时,我的意思是从表单提交发送一个 http 请求,我得到以下奇怪的响应

{ "destination_addresses" : [ "" ],
  "origin_addresses" : [ "Gothenburg, Sweden" ],
  "rows" : [
     {
        "elements" : [
           {
              "status" : "NOT_FOUND"
           }
        ]
     }
  ],
  "status" : "OK"
}

请不要在这种情况下destination_addresses 为空,状态为NOT_FOUND。

我用来获得响应的 Java 代码是

private String getResponse(String URL) throws Exception {
        InputStream stream = new URL(URL).openStream();
        byte[] array = new byte[stream.available()];
        stream.read(array);
        return new String(array);
}

请指导我解决这个问题,

谢谢....

4

2 回答 2

0


除非 google 不允许您的软件连接,否则请使用 https 。

并获得一个 api 密钥。

阅读: https ://developers.google.com/maps/documentation/distance-matrix/start

https://maps.googleapis.com/maps/api/distancematrix/json?origins=416%2063,Sweden&destinations=424%2069,Stor%C3%A5s%20Industrigatan%2020,Angered,G%C3%B6teborg&sensor=false&key=YOUR_API_KEY

请务必将 YOUR_API_KEY 替换为您的实际 API 密钥

于 2016-12-06T05:10:21.810 回答
0

在 Java 中使用距离矩阵 API 时,我遇到了类似的问题。在我的请求中设置语言似乎可以使它工作:

    DistanceMatrixElement distanceMatrixElement;
    DistanceMatrix matrix;

    try
    {
        matrix = distanceMatrixApiRequest
                .origins(...)
                .destinations(...)
                .language("en")
                .await();
    }
于 2017-08-09T11:45:46.823 回答