在java中向.json URI发出get请求并接收其内容

时间:2012-03-20 09:26:40

标签: java android json uri httprequest

我有 .json 类型的URI http://data.seattle.gov/api/views/vncn-umqp/rows.json,并希望发出GET请求以检索对象的data部分(请参阅页面的后半部分)用“数据”)用于绘图目的。

问题是我不确定是使用HttpURLConnectionURLURLConnection还是Connection或任何其他类似资源才能获得成功的200响应。此外,这个URI的域为请求提供了一个REST API right here,但是由于文档中的不一致(例如,他们使用sun.Base64Encoder来编码用户凭证,这是不可使用或不可用的),我觉得很难使用用于连接,更不用说数据检索了。

他们还使用带有API密钥的身份验证方法,但我不确定哪个工作可以完成任务的简单性(即,只有从该特定URI读取数据才需要哪个)

有人能为我提供如何提出此类请求的解决方案吗?

2 个答案:

答案 0 :(得分:3)

您可以使用Apache HttpClient向Web资源发出请求,它包含在Android API中。发出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谓词(POSTPUTDELETE ...)。

关于你问题的第二部分,它有点令人困惑,因为它似乎暗示这个REST API是由你链接的web服务的同一个提供者提供的,但事实并非如此。此外,它并不是很明显,它实际上是一个REST 客户端 API。您可能想要更新您的问题以清除它。但回到主题,您不需要为此使用复杂的REST客户端API,只需使用HttpClient访问内容并使用JSON库处理它。

祝你好运!

答案 1 :(得分:1)

我建议您使用Google的Gson库来处理JSON文件。

http://code.google.com/p/google-gson/

在项目中集成非常容易,并且可以轻松解析json文件的内容。