news 2026/4/18 1:58:12

使用Java代码,httpclient调用彩云天气接口-token版本

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
使用Java代码,httpclient调用彩云天气接口-token版本

彩云API参考链接:https://docs.caiyunapp.com/weather-api/v2/v2.6/1-realtime.html

本文为token版本,若需要Appkey&AppSecret认证版本请参考V3API认证与鉴权

一、引入 Maven 依赖

<!-- httpclient --> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.14</version> </dependency> <!-- json 解析 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.83</version> </dependency>

二、完整 Java 代码

import com.alibaba.fastjson.JSONObject; import org.apache.http.HttpEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; import java.io.IOException; /** * 彩云天气 HttpClient 调用完整示例 * 官方文档:https://open.caiyunapp.com/ */ public class CaiYunWeatherDemo { // 1. 替换为你自己的 彩云天气 Token private static final String TOKEN = "你的彩云天气token"; /** * 调用彩云天气接口 获取实时天气 * @param longitude 经度 * @param latitude 纬度 * @return 天气json结果 */ public static String getWeather(double longitude, double latitude) { // 接口地址:实时天气 String url = String.format( "https://api.caiyunapp.com/v2.5/%s/%.6f,%.6f/realtime", TOKEN, longitude, latitude ); // 创建HttpClient try (CloseableHttpClient httpClient = HttpClients.createDefault()) { HttpGet httpGet = new HttpGet(url); // 设置请求头 httpGet.addHeader("Content-Type", "application/json;charset=UTF-8"); // 执行请求 try (CloseableHttpResponse response = httpClient.execute(httpGet)) { HttpEntity entity = response.getEntity(); if (entity != null) { // 读取响应内容 return EntityUtils.toString(entity, "UTF-8"); } } } catch (IOException e) { e.printStackTrace(); } return null; } public static void main(String[] args) { // 示例:北京 经纬度 double lon = 116.403874; double lat = 39.914885; // 调用接口 String result = getWeather(lon, lat); System.out.println("原始返回结果:"); System.out.println(result); // 解析JSON if (result != null) { JSONObject json = JSONObject.parseObject(result); JSONObject realtime = json.getJSONObject("result").getJSONObject("realtime"); // 取出关键天气字段 String sky = realtime.getString("sky"); // 天气状况 double temp = realtime.getDouble("temperature");// 温度 double humidity = realtime.getDouble("humidity");// 湿度 System.out.println("\n===== 天气解析结果 ====="); System.out.println("天气:" + sky); System.out.println("温度:" + temp + " ℃"); System.out.println("湿度:" + humidity); } } }

三、关键说明

  1. 获取 Token去彩云天气官网注册账号,申请开发者token,替换代码中

  2. 接口说明

    • 实时天气:/v2.6/token/经度,纬度/realtime
    • 逐日 / 小时预报、空气质量 可自行改接口路径
  3. 资源自动关闭使用try-with-resources自动关闭HttpClient、Response,避免连接泄漏

  4. 异常处理捕获 IO 异常,适合项目生产使用


四、拓展:POST 请求 / 带超时配置

如果需要设置超时,替换创建 Client 代码:

import org.apache.http.client.config.RequestConfig; RequestConfig config = RequestConfig.custom() .setConnectTimeout(5000) // 连接超时 .setSocketTimeout(10000) // 读取超时 .build(); CloseableHttpClient httpClient = HttpClients.custom() .setDefaultRequestConfig(config) .build();
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 1:55:25

LangGraph 循环节点避坑:5个导致死循环的错误与终止条件设计

LangGraph 循环节点避坑&#xff1a;5个导致死循环的错误与终止条件设计 关键词 LangGraph, 循环节点, 死循环, 终止条件设计, 多Agent协作, 状态机编程, LLM应用开发 摘要 在构建具有推理反思、多轮迭代修正、任务拆解执行等高级功能的LLM驱动应用时&#xff0c;LangGraph的…

作者头像 李华
网站建设 2026/4/18 1:52:15

gprMax完整指南:从零开始掌握地质雷达电磁波仿真

gprMax完整指南&#xff1a;从零开始掌握地质雷达电磁波仿真 【免费下载链接】gprMax gprMax is open source software that simulates electromagnetic wave propagation using the Finite-Difference Time-Domain (FDTD) method for numerical modelling of Ground Penetrati…

作者头像 李华
网站建设 2026/4/18 1:49:18

【土地延包应用1】土地延包|农经权|二轮延包神器!证件照片 OCR 识别 + MDB 数据库自动比对工具(支持 PDF / 导出 Excel)

土地延包|农经权|二轮延包神器&#xff01;证件照片 OCR 识别 MDB 数据库自动比对工具&#xff08;支持 PDF / 导出 Excel&#xff09; 前言 农村土地延包工作中&#xff0c;最繁琐、最耗时的环节莫过于海量证件照片与数据库信息人工核对。面对成百上千张身份证、户口本照片&a…

作者头像 李华
网站建设 2026/4/18 1:46:13

2026.4.14实验三:语法分析的C语言实现及要求

实验三 语法分析的C语言实现时间&#xff1a;2026.4.14实验三语法分析的C语言实现一、 实验目的可以让对语法分析器发挥实际功能具体过程方面的理解得以更加深入&#xff0c;与此同时&#xff0c;是能够运用某一种编程语言去开展具备简易特性的语法分析程序的实现操作…

作者头像 李华