2012-03-20 67 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