2012-04-29 125 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(); 
    }