使用 Unirest 获取请求以获取 JSON 流

Get request using Unirest to get a JSON stream

我正在尝试建立此 GET 请求:

 http://api.bitcoincharts.com/v1/trades.csv?symbol=krakenUSD&start=1303100000

当我使用 postman 执行此操作时,效果非常好。但是,当我使用 HttpRequest 执行此操作时,请求的主体 returns 作为空对象。

            HttpRequest r = Unirest.get("http://api.bitcoincharts.com/v1/trades.csv").queryString("symbol", "krakenUSD").queryString("start", "1303100000");
            System.out.println(r.getUrl());
            System.out.println(r.getBody().toString());

我在以下位置收到空指针错误:

 System.out.println(r.getBody().toString());

提交此 GET 请求的正确方法是什么?我不确定我是否应该使用 queryString()?

首先,您提出的请求可能 return JSON。查看端点 URL:

"http://api.bitcoincharts.com/v1/trades.csv"

很可能 return 是 CSV,而不是 JSON。

如果内容类型是'application/json'或者URL是*.json,你必须调用.asJson方法:

Unirest.post(URL)
  .queryString("symbol", "krakenUSD")
  .queryString("start", "1303100000")
  .asJson()

参考:http://unirest.io/java.html