繁体   English   中英

使用REST API从Web服务接收数据

[英]Receive data from a webservice using REST API

我需要从此API http://countryapi.gear.host/v1/Country/getCountries?pName=Australia中获取特定数据,将其转换为String并在控制台上写出。 我只想获取澳大利亚的数据。 我如何仅以Name和Alpha2Code的形式获取String格式的数据,如下所示: Australia, AU 我试图使用EntityUtils.toString(response)但是它不起作用。

这是我的代码:

public class Client {

public static void main(String[] args) throws ClientProtocolException, IOException {

    HttpClient client = new DefaultHttpClient();
    HttpGet request = new HttpGet("http://countryapi.gear.host/v1/Country/getCountries?pName=Australia");
    request.addHeader("accept", "application/json");
    HttpResponse response = client.execute(request);
    HttpEntity entity = response.getEntity();
    InputStream stream = entity.getContent();
    BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
    String line = reader.readLine();
    System.out.println(line);
}
}

该代码实际上返回澳大利亚的JSON,如下所示:

在此处输入图片说明

您可以使用Java API进行JSON解析。 我只是在编写示例代码。 您可以在以下URL上进一步探索json解析api: http : //www.oracle.com/technetwork/articles/java/json-1973242.html

JsonObject obj = rdr.readObject();
JsonArray results = obj.getJsonArray("data");
for (JsonObject result : results.getValuesAs(JsonObject.class)) {
    System.out.print(result.getJsonObject("name").getString("name"));
    System.out.print(": ");
    System.out.println(result.getString("message", ""));
    System.out.println("-----------");
 }

尝试这样的事情:

Gson gson = new Gson();
JsonObject result = gson.fromJson(line, JsonObject.class);
JsonArray response = result.getAsJsonArray("Response");
Country country = gson.fromJson(response, Country.class);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM