当前位置: 首页 > news >正文

使用Java通过get请求获取api.open-meteo.com网站的天气数据

使用Java通过get请求获取api.open-meteo.com网站的天气数据

继C++中使用cpp-httplib和nlohmann_json库实现http请求获取天气数据和Nodejs通过get请求获取api.open-meteo.com网站的天气数据,我们再使用Java实现对应功能。
以下是使用 Java 发送 HTTP GET 请求以获取天气数据的示例代码:


示例代码

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URI;
import java.net.URL;public class GetWeatherData {public static void main(String[] args) {try {// API URLString apiUrl = "http://api.open-meteo.com/v1/forecast?latitude=37.8136&longitude=144.9631&current_weather=true";// 创建 URL 对象// Java ‘URL(java. lang. String)‘ 自版本 20 起已弃用// https://blog.csdn.net/WithCYwind/article/details/145185245// URL url = new URL(apiUrl);// 首先创建 URI 对象URI uri = new URI(apiUrl);// 再通过 toURL() 转换为 URLURL url = uri.toURL();// 打开 HTTP 连接HttpURLConnection connection = (HttpURLConnection) url.openConnection();// 设置请求方法为 GETconnection.setRequestMethod("GET");// 获取响应代码int responseCode = connection.getResponseCode();System.out.println("HTTP response code: " + responseCode);// 如果响应成功(状态码 200)if (responseCode == HttpURLConnection.HTTP_OK) {// 读取响应数据BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));StringBuffer response = new StringBuffer();String line;while ((line = in.readLine()) != null) {response.append(line);}// 关闭输入流in.close();// 打印响应数据System.out.println("Weather Data:");System.out.println(response.toString());} else {System.out.println("GET request failed.");}// 断开连接connection.disconnect();} catch (Exception exception) {exception.printStackTrace();}}
}

说明

  1. API URL:

    • 使用 http://api.open-meteo.com/v1/forecast 获取天气数据。
    • 查询参数包括纬度 (latitude)、经度 (longitude) 和当前天气 (current_weather=true)。
  2. HttpURLConnection:

    • 用于发送 HTTP 请求和接收响应。
    • 设置请求方法为 GET
  3. 响应处理:

    • 如果响应代码为 200(HTTP_OK),读取并打印响应数据。
    • 使用 BufferedReader 逐行读取响应内容。
  4. 错误处理:

    • 捕获异常并打印堆栈跟踪。

运行代码

  1. 保存文件
    将代码保存为 GetWeatherData.java

  2. 编译代码
    在终端中运行:

    javac GetWeatherData.java
    
  3. 运行程序
    运行生成的 .class 文件:

    java GetWeatherData
    

示例输出

HTTP response code: 200
Weather Data:
{"latitude":37.8,"longitude":144.9375,"generationtime_ms":0.06937980651855469,"utc_offset_seconds":0,"timezone":"GMT","timezone_abbreviation":"GMT","elevation":0.0,"current_weather_units":{"time":"iso8601","interval":"seconds","temperature":"°C","windspeed":"km/h","winddirection":"°","is_day":"","weathercode":"wmo code"},"current_weather":{"time":"2025-11-01T13:00","interval":900,"temperature":19.3,"windspeed":34.7,"winddirection":285,"is_day":0,"weathercode":0}}

java get请求获取天气数据

注意事项

  1. 确保你的网络可以访问 http://api.open-meteo.com
  2. 如果需要发送 POST 请求,可以使用 connection.setRequestMethod("POST") 并写入请求体。
  3. 如果需要解析 JSON 响应,可以使用第三方库(如 Jackson 或 Gson)。

参考资料

  • C++中使用cpp-httplib和nlohmann_json库实现http请求获取天气数据
  • Nodejs通过get请求获取api.open-meteo.com网站的天气数据
  • Java ‘URL(java. lang. String)‘ 自版本 20 起已弃用
  • 如何替换 Java 20 中已弃用的 URL 构造函数:Deprecated constructorURL.<init>(String)is invoked
http://www.dtcms.com/a/557922.html

相关文章:

  • 网页商城设计商城网站设计案例进入wordpress后
  • ps制作个人网站佛山外发加工网
  • 建设电影网站论文上海做网站哪里好
  • 北京地下室电梯井渗漏水防水堵漏维修施工解决方案
  • 存储设备的“分配单元大小“(allocation unit size)是什么?
  • 婚纱网站页面设计图片保定模板做网站
  • 506-Spring AI Alibaba Multi-Agent OpenManus 功能完整案例
  • 做的比较好的网站有哪些从化区住房和建设局网站
  • 软件测试大赛web测试-python【备赛4 复盘待完善】
  • 37_AI智能体工具插件之Agent决策状态模型和JSON输出解析器数据模型设计实战
  • <项目代码>yolo织物缺陷识别<目标检测>
  • 构建AI智能体:八十一、SVD模型压缩的艺术:如何科学选择K值实现最佳性能
  • Megatron-LM张量并行详解:原理、实现与应用
  • systemd timer定时任务 —— 筑梦之路
  • win7 iis7 添加网站百度竞价网站建设
  • js网站分页怎么做wordpress怎么保存图片
  • linux-系统启动-8
  • 数码商城系统|电子|基于SprinBoot+vue的商城推荐系统(源码+数据库+文档)
  • 第10讲:导航与路由:在页面间穿梭
  • Linux 磁盘空间“消失”之谜:文件已删,空间却不释放?
  • P1990 覆盖墙壁(dp)
  • 计算机操作系统理论学习
  • 胶州建网站推广游戏的平台
  • 未来之窗昭和仙君(四十九)集成电路芯片生产管理出库——东方仙盟筑基期
  • 哈尔滨公司网站建设科技企业网站源码
  • 行业网站推广怎么做wordpress-3.7
  • Pandas 简介与安装
  • openpnp - 吸嘴的单独校准
  • 程序员除了做软件是不是就做网站县 两学一做网站
  • 企业网站制作公司有哪些口碑营销的本质是什么