2012-03-20 69 views
1

我有型的這個URI http://data.seattle.gov/api/views/vncn-umqp/rows.json以.json,並希望使GET請求檢索對象的data一部分(見的後半部分用「數據」頁面)進行繪圖。一個GET請求,以.json URI在Java和接收其內容

問題是我不確定是否使用HttpURLConnectionURLURLConnectionConnection或任何其他類似資源來接收成功的200響應。此外,這個URI的域爲請求提供了一個REST API right here,但由於文檔中的不一致性(例如,它們使用sun.Base64Encoder來編碼用戶證書,這不適用或不可用),我發現實際上很難用於連接,單獨用於數據檢索。

他們還利用與API密鑰的認證方法,但我不知道哪一個沒有工作的任務的簡單性(即,一個只有從這個特殊的URI讀取數據是必要的)

誰能提供我是如何提出這樣的請求的解決方案?

回答

3

您可以使用Apache HttpClient向包含在Android API中的Web資源發出請求。發出GET請求很簡單:

HttpGet get = new HttpGet("http://data.seattle.gov/api/views/vncn-umqp/rows.json"); 

HttpClient client = new DefaultHttpClient(); 
HttpResponse response = client.execute(get); 
System.out.println(response.getStatusLine()); 

然後,您可以使用JSON庫來解析響應。客戶端還支持其他HTTP動詞(POSTPUT,DELETE ...)。

至於你的問題的第二部分,它有點令人困惑,因爲它似乎暗示這個REST API是由你鏈接的Web服務的相同提供者提供的,但事實並非如此。另外,它實際上並不是很明顯,它實際上是一個REST客戶端API。您可能需要更新您的問題以清除該問題。但是回到主題上,您不需要爲此使用複雜的REST客戶端API,只需使用HttpClient訪問內容並使用JSON庫處理它即可。

祝你好運!

+0

非常感謝!這給了我一個200 OK!關於REST API,爲什麼你認爲他們已經建立了自己的身份驗證'HttpConnection'類與應用程序令牌參數和東西?因爲我有apptoken,但我不認爲這是必要的,因爲我只想讀取數據並在地圖上繪製它們。除非我正在將數據寫入其數據庫,否則認證似乎更加無用。 – jmishra 2012-03-20 10:32:19

+0

我不熟悉他們的API,所以不能對它說話。我知道HttpClient允許您開箱即用地進行基本和摘要身份驗證,支持SSL,並且可以通過一些幫助完成OAuth。您鏈接的API可能試圖在各種技術之上放置一個更簡單的圖層,但正如我所說的,我之前沒有使用它。 – Perception 2012-03-20 10:44:54