Java 天气预报程序:利用 OpenWeatherMap API 获取实时天气数据77


在 Java 中编写天气预报程序需要调用外部 API 来获取天气数据。OpenWeatherMap 是一个流行的 API,提供免费的天气数据访问。本文将指导你使用 Java 编写一个使用 OpenWeatherMap API 获取实时天气数据的程序,涵盖 API 集成、数据解析和输出格式化。

1. API 集成

首先,你需要集成 OpenWeatherMap API。在你的项目中添加以下库依赖项:```


gson
2.10.2



httpclient
4.5.13

```

接下来,使用以下代码创建一个 OpenWeatherMap API 客户端:```java
import ;
import ;
import ;
import ;
public class OpenWeatherMapClient {
private static final String API_KEY = "YOUR_API_KEY";
private static final String BASE_URL = "/data/2.5/weather";
private final Gson gson;
private final HttpClient httpClient;
public OpenWeatherMapClient() {
= new Gson();
= ().build();
}
// 获取当前天气数据
public WeatherData getCurrentWeather(String city) throws IOException {
String url = ("%s?q=%s&appid=%s&units=metric", BASE_URL, city, API_KEY);
HttpGet request = new HttpGet(url);
HttpResponse response = (request);
if (().getStatusCode() != 200) {
throw new RuntimeException("HTTP request failed: " + ().getStatusCode());
}
String jsonBody = (());
return (jsonBody, );
}
}
```

2. 数据解析

获取 JSON 响应后,你需要将其解析为 Java 对象。创建一个 `WeatherData` 类来表示天气数据:```java
public class WeatherData {
private String name;
private double temp;
private double humidity;
private String description;
// 省略 getter 和 setter 方法
}
```

然后,使用 Gson 库解析 JSON 响应:```java
WeatherData weatherData = (jsonBody, );
```

3. 输出格式化

最后,格式化天气数据以供显示:```java
("天气预报");
("城市:%s", ());
("温度:%.1f 摄氏度", ());
("湿度:%.1f%%", ());
("天气状况:%s", ());
```

完整代码```java
import ;
import ;
public class WeatherApp {
public static void main(String[] args) throws IOException {
Scanner scanner = new Scanner();
// 获取城市名称
("请输入城市名称:");
String city = ();
// 创建 OpenWeatherMap API 客户端
OpenWeatherMapClient client = new OpenWeatherMapClient();
// 获取当前天气数据
WeatherData weatherData = (city);
// 格式化并输出天气数据
("天气预报");
("城市:%s", ());
("温度:%.1f 摄氏度", ());
("湿度:%.1f%%", ());
("天气状况:%s", ());
}
}
```

2024-12-09


上一篇:Java 线程之间的数据传递机制

下一篇:Java 十进制转十六进制字符串