📅  最后修改于: 2023-12-03 15:24:38.275000             🧑  作者: Mango
使用天气 API 可以帮助我们在网站上显示实时天气信息。本文将介绍如何在 Netbeans 中使用 Java 调用 API 获取天气信息并将其显示在网页上。
我们需要从一个天气 API 提供商那里获取 API Key,以便我们可以使用其提供的 API。可以尝试注册以下天气API供应商:
在注册后,我们需要获得一个 API Key。在我们开始编写代码之前,我们需要确保 API Key 的有效性。
我们需要使用以下依赖库:
Java.net.URL:一个类,表示 Uniform Resource Locator 提供程序。它是一个指向 Web 资源的指针。
Java.net.URLConnection:一个对象,表示到 URL 所参照的远程对象的连接。URLConnection 可以用于读取和写入数据。
Java.io.BufferedReader:用于读取字符流的缓冲区。可以用来一行一行地读取字符串。
markdown:
import java.net.URL;
import java.net.URLConnection;
import java.io.BufferedReader;
import java.io.InputStreamReader;
我们需要连接到 API,构建一个 URL,并从该 URL 中读取数据。
URL url = new URL("https://api.openweathermap.org/data/2.5/weather?q=London,uk&appid=YOUR_API_KEY");
URLConnection connection = url.openConnection();
connection.setRequestProperty("User-Agent", "Mozilla/5.0");
InputStreamReader inputStreamReader = new InputStreamReader(connection.getInputStream());
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String inputLine;
StringBuilder response = new StringBuilder();
while ((inputLine = bufferedReader.readLine()) != null) {
response.append(inputLine);
}
bufferedReader.close();
首先,我们构建一个 URL,该 URL 包含查询和 API Key。我们使用 URLConnection 建立连接,创建一个 BufferedReader 并最终将数据保存到 StringBuffer 中。
由于我们获取的响应是 JSON 格式的,我们可以使用 JSON 库解析响应数据。可以将以下依赖项添加到 pom.xml:
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>${gson.version}</version>
</dependency>
现在我们可以将响应数据转换为 Java 对象,并从中获取所需的信息。
Gson gson = new Gson();
WeatherResponse weatherResponse = gson.fromJson(response.toString(), WeatherResponse.class);
现在我们已经成功地获取了天气信息并将其存储在 WeatherResponse Java 对象中,我们可以将其显示在网站上。可以使用 JSP 或者 Servlet 来处理显示逻辑。
以下示例代码演示如何将当前温度显示在网页上:
<html>
<head>
<title>Weather API Example</title>
</head>
<body>
<h1>Current Temperature:</h1>
<h2><%= weatherResponse.getMain().getTemp() %> F</h2>
</body>
</html>
最终显示数据的效果如下:
本文介绍了如何在 Netbeans 上使用 Java 获取天气 API 数据,并将其显示在网页上。通过这个例子,您可以学习如何使用 URL、URLConnection、BufferedReader 和 GSON 库将 JSON 数据转换为 Java 对象。