2012-04-29 126 views
2

我在这里面临一个奇怪的问题,谷歌距离矩阵API奇怪

当我运行以下URL从Web浏览器或java命令行

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); 
} 

请指导我解决这个问题,

感谢....

+0

向我们显示您的代码,最好是[SSCCE](http://sscce.org)。 [堆栈溢出不是心灵读者或水晶球](http://meta.stackexchange.com/a/128551/133242) – 2012-04-29 15:24:02

+0

我编辑了这个问题,奇怪的是代码给出了预期的结果,当我跑过在类中的主要方法,但当我运行相同的方法使用HTML表单提交(可以说在一个servlet内)响应NOT_FOUND – Eric 2012-04-29 15:45:43

+0

“URL”的价值是什么? – 2012-04-29 15:46:50

回答

0

我在Java中使用距离矩阵API时,也有类似的问题,以取代YOUR_API_KEY。在我的请求中设置语言似乎可以使其工作:

DistanceMatrixElement distanceMatrixElement; 
    DistanceMatrix matrix; 

    try 
    { 
     matrix = distanceMatrixApiRequest 
       .origins(...) 
       .destinations(...) 
       .language("en") 
       .await(); 
    }