【问题标题】:making a get request to .json URI in java and receiving its contents在 java 中向 .json URI 发出 get 请求并接收其内容
【发布时间】:2012-03-20 09:26:39
【问题描述】:

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

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

他们还使用带有 API 密钥的身份验证方法,但我不确定哪一种方法可以简化任务(即,哪一种方法仅用于从该特定 URI 读取数据)

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

【问题讨论】:

    标签: java android json uri httprequest


    【解决方案1】:

    您可以使用 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 client API 并不是很明显。您可能需要更新您的问题以清除它。但回到主题,您不需要为此使用复杂的 REST 客户端 API,只需使用 HttpClient 访问内容并使用 JSON 库进行处理。

    祝你好运!

    【讨论】:

    • 非常感谢!那给了我200 OK!关于 REST API,您为什么认为他们使用应用令牌参数和东西设置了自己的身份验证 HttpConnection 类?因为我有 apptoken,但我认为没有必要,因为我只想读取数据并将它们绘制在地图上。除非我将数据写入他们的数据库,否则身份验证似乎更加无用。
    • 我对他们的 API 不熟悉,所以无法与之交谈。我知道 HttpClient 可以让您开箱即用地进行基本和摘要式身份验证,支持 SSL 并且可以在一些帮助下进行 OAuth。您链接的 API 可能试图在各种技术之上放置一个更简单的层,但就像我说的,我以前没有使用过它。
    【解决方案2】:

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

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

    它很容易集成到您的项目中,并且会大大减轻您解析 json 文件内容的工作。

    【讨论】:

      猜你喜欢
      • 2011-09-30
      • 2017-11-06
      • 2014-09-30
      • 2021-06-20
      • 1970-01-01
      • 1970-01-01
      • 2019-01-13
      • 2014-07-13
      • 1970-01-01
      相关资源
      最近更新 更多