Java 天气接口 天气查询

基于JAVA的免费天气预报接口查询 接口地址:http://apis.juhe.cn/simpleWeather/query 返回格式:json 请求方式:http get/post 请求示例:http://apis.juhe.cn/simpleWeather/query?city=%E8%8B%8F%E5%B7%9E&key= 接口备注:通过城市名称或城市ID查询天气预报情况 请求参数说明: 名称 必填 类型 说明 city 是 string 要查询的城市名称/.. 阅读详情

第一步:配置yml

spring:
  #天气接口配置
  weather:
    appid: 82573591
    appsecret: oIVw8PWM
    #每个天气接口的version值都不同,如要更换接口,请同步更换version值

    #收费版 支持全球十万+ 城市天气
    #version: day
    #url: https://v0.tianqiapi.com

    #免费版 支持国内--七日天气--查询
    #version: v1
    #url: https://tianqiapi.com/api

    #免费版 支持国内天气查询
    version: v6
    url: https://tianqiapi.com/api

第二步:单独写一个WeatherConfig类

package com.techen.ami.config;

import com.alibaba.fastjson.JSONObject;
import com.techen.tap.utils.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;
import javax.servlet.http.HttpServletRequest;
import java.util.Map;

@Configuration
public class WeatherConfig {


    @Value("${spring.weather.appid}")
    public String appid;

    @Value("${spring.weather.appsecret}")
    public String appsecret;

    @Value("${spring.weather.version}")
    public String version;

    @Value("${spring.weather.url}")
    public String url;

    @Autowired
    public RestTemplate restTemplate;

    //天气查询条件: 城市名称 坐标  如: query=北京  query=36.68,116.99
    String query = "北京";

    //设备ip  默认值47.95.242.134
    String ip = "47.95.242.134";

    //语言  zh  en    默认zh
    String language = "zh";

    //温度单位   m--摄氏度    f--华氏度   默认摄氏度
    String unit = "m";

    public String getUrl(HttpServletRequest request)
    {
        beforeSetting(request);
        //return url + "/?version=" + version + "&unit=" + unit + "&language=" + language + "&query=" + query + "&appid=" + appid + "&appsecret=" + appsecret;
        return url + "/?version=" + version  + "&city=" + query + "&appid=" + appid + "&appsecret=" + appsecret;
    }


    //按坐标获取天气url
    public String getUrlByCoordinate(Map paraMap , HttpServletRequest request)
    {
        String coordinate = "";
        if(paraMap.containsKey("longitude"))
        {
            String value = paraMap.get("longitude").toString();
            if(!StringUtil.isEmpty(value))
            {
                coordinate += value + ",";
            }
        }
        if(paraMap.containsKey("latitude"))
        {
            String value = paraMap.get("latitude").toString();
            if(!StringUtil.isEmpty(value))
            {
                coordinate += value ;
            }
        }
        if(!StringUtil.isEmpty(coordinate)){query = coordinate;}
        return getUrl(request);
    }

    //按城市获取天气url
    public String getUrlByCity(Map paraMap , HttpServletRequest request)
    {
        String city = "";
        if(paraMap.containsKey("city"))
        {
            String value = paraMap.get("city").toString();
            if(!StringUtil.isEmpty(value))
            {
                city += value ;
            }
        }
        if(!StringUtil.isEmpty(city)){query = city;}
        return getUrl(request);
    }

    //设置语言类型和温度单位
    public void beforeSetting(HttpServletRequest request)
    {
        String lang = request.getHeader("lang");
        if("en".equals(language))
        {
            language = lang;
            unit = "f";
        }
        else
        {
            language = lang;
            unit = "m";
        }
    }


    //由后台发送请求,接收返回的天气参数  依照城市
    public Map  getWeatherByCity(HttpServletRequest request , Map paraMap)
    {
        String url = this.getUrlByCity( paraMap , request);
        JSONObject jsonObj = restTemplate.getForObject(url , JSONObject.class);
        Map resultMap = (Map<String , Object>) jsonObj;
        return resultMap;
    }

    //由后台发送请求,接收返回的天气参数  依照经纬度
    public Map  getUrlByCoordinate(HttpServletRequest request , Map paraMap)
    {
        String url = this.getUrlByCoordinate( paraMap , request);
        JSONObject jsonObj = restTemplate.getForObject(url , JSONObject.class);
        Map resultMap = (Map<String , Object>) jsonObj;
        return resultMap;
    }
}

第三步 , 编写Controller.

    @Autowired
    protected WeatherConfig weatherConfig;


    @GetMapping(value = "/weather")
    public ResponseResult<Object> weather(HttpServletRequest request)
    {
        //paraMap由get请求传入, 参数名: city   参数值:城市名称(不带 省  市 后缀)如:上海
        Map paraMap = new HashMap();
        paraMap.put("city" , "shanghai");
        paraMap = weatherConfig.getWeatherByCity(request , paraMap);
        return ResponseResult.ok(paraMap);
    }

具体城市名称大全 请参考:

https://gitee.com/wangjins/weather_api/blob/master/city.sql#

 

JAVA的免费天气预报接口查询 1、开通接口 天气预报接口服务使用的聚合数据提供的免费接口,每天可以100次免费调用。可以通过https://www.juhe.cn/docs/api/id/73注册及开通。 2 Java查询城市天气 package com.example.demo.Entity; import net.sf.json.JSONObject; import java.io.*; import java.net.HttpURLConnection; import java.net.URL; import java.net.U 阅读详情

相关推荐

JAVA的免费天气预报接口查询放到项目中的方法

package com.example.demo.Controller; import net.sf.json.JSONObject; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; imp.

fanqingdi092298的博客 484

java-天气预报的接口

http://aider.meizu.com/app/weather/listWeather 参数是cityIds 后面跟上.json 里面对应的areaid http://aider.meizu.com/app/weather/listWeather?cityIds=101340201 [ { "areaid": 101010100, "countyname": "北...

29岁的裴野永远爱你 6751

中国城市网天气查询接口

中国天气网城市代码:

我不是码农的博客~~~ 929

Java调用第三方接口示范

在项目开发中经常会遇到调用第三方接口的情况,比如说调用第三方的天气预报接口。 使用流程 【1】准备工作:在项目的工具包下导入HttpClientUtil这个工具类,或者也可以使用Spring框架的restTemplate来调用,上面有调用接口的方法【分为Get和Post方式的有参和无参调用】: package com.njsc.credit.util; import java.io.IOExcep...

b_bunana的博客 1981

IFIX往Mysql数据库同步数据方法

通过IFix数据库向Mysql数据库同步数据

仙人掌 1594

AI驱动视频剪辑自动化:cutcli命令行工具重塑工作流

视频剪辑自动化是提升内容生产效率的关键技术,其核心原理在于通过程序化指令替代手动操作,将创意执行过程代码化。这项技术的价值在于能够将创作者从重复性劳动中解放,实现批量化、标准化的视频内容生产,尤其适用于社交媒体运营、产品宣传等高频产出场景。通过封装专业软件(如剪映/CapCut)的底层草稿格式,自动化工具在保证工业级渲染质量的同时,提供了可编辑的中间态,为AI智能体(Agent)与生产工具的结合提供了清晰接口。本文以cutcli为例,深入探讨了如何通过命令行工具和AI助手,构建从自然语言指令到可编辑视频草稿

weixin_27210125的博客 1057

JAVA调用天气获取接口

java中调用天气信息接口(百度天气API与高德天气API)

weixin_43894818的博客 3119

宇树机器狗go2—slam建图(1)点云格式

上一篇番外文章教大家如何在宇树机器狗go2的gazebo仿真环境中实现简单的导航运动,本期文章会教大家如何让宇树的机器狗go2在仿真环境中进行slam建图时经常会遇到的一些点云格式,在后续的slam建图和slam算法解析的时候会经常与这些点云信息打交道。宇树机器狗go2仿真会作为一个长期项目来进行不定期更新,仿真不只限于在gazebo上实现,后面还会在isaac sim等仿真平台上教大家如何搭建,其目的还是帮助各位都能以较低的成本加入到宇树机器狗go2的学习中。

古月居 3270

Java查询天气

Java获取天气信息

m0_54840761的博客 8788

从零开始:Basler相机与pylon Viewer的工业视觉入门指南

本文详细介绍了Basler相机与pylon Viewer在工业视觉系统中的入门指南,涵盖硬件连接、软件安装、核心功能解析及实战案例。通过pylon Viewer的全面控制和参数调整功能,帮助新手快速掌握工业视觉检测技术,提升生产效率。

julia4scientist的博客 1134

Windows下TensorRT+YOLOv11部署避坑指南:从CUDA配置到模型加密全流程

本文详细解析了在Windows平台部署YOLOv11与TensorRT的全流程,重点涵盖从CUDA环境配置、工程编译适配到模型加密保护的实战指南。基于wang-xinyu的tensorrtx仓库,提供了详细的版本选择、编译问题修复方案,并深入探讨了如何对TensorRT引擎进行加密,以实现高效且安全的端到端部署。

vscode5coder的博客 449

全国天气预报查询接口如何用Java进行调用?

本文介绍了使用Java调用全国天气预报API的方法,主要包括三个功能:查询城市5天天气预报、获取生活指数以及支持城市列表。以阿里云接口为例,详细展示了通过Java实现API调用的代码示例,包括设置请求参数、headers和发送GET请求。文章强调该方法可为各类应用快速集成天气功能,提升用户体验和智能化服务水平,同时提供了相关工具和依赖的获取途径。

2501_92081462的博客 517

Unity UI适配核心:Canvas Scaler模式解析与2023版避坑指南

UI适配是游戏与应用开发中的基础挑战,其核心在于确保界面元素在不同屏幕分辨率与设备上保持视觉一致与功能可用。原理上,系统通过坐标转换与缩放计算,将设计稿的布局映射到物理屏幕。技术价值在于提升用户体验的一致性与产品的跨平台兼容性。应用场景广泛覆盖手游、PC端应用及各类交互界面。本文聚焦Unity引擎中的Canvas Scaler组件,深入剖析其Scale With Screen Size等模式的工作原理,并结合锚点设置、安全区域处理等高频搜索热词,提供解决UI错位、拉伸及异形屏适配等常见问题的工程实践方案,帮

weixin_30920597的博客 622

java 天气api_基于JAVA的免费天气预报接口查询

1、开通接口天气预报接口服务使用的聚合数据提供的免费接口,每天可以100次免费调用。可以通过https://www.juhe.cn/docs/api/id/73注册及开通。2、通过Java发起城市天气查询package cn.juhe;import net.sf.json.JSONObject;import java.io.*;import java.net.HttpURLConnection;i...

weixin_36046702的博客 1199

2025.06.06【Ribo-seq】|riboWaltz:P-site定位与三碱基周期性分析流程

同学们,大家好!今天我们要学习的是riboWaltz——一款专为Ribo-seq(核糖体足迹测序)数据设计的R包,主要用于P-site定位优化和三碱基周期性分析。P-site的准确定位是Ribo-seq下游所有翻译组学分析的基础,riboWaltz为我们提供了系统、可视化、易用的解决方案。P-site定位优化:自动识别不同长度RPF的最佳P-site偏移量。三碱基周期性分析:可视化RPF在CDS、UTR等区域的分布,评估数据质量。多样本/多条件支持:可同时处理多个样本,便于批量分析和对比。

1789

结构力学仿真软件:STAAD.Pro:结构抗震设计与STAAD.Pro应用_2024-08-10_11-49-29.Tex

STAAD.Pro是一款广泛应用于结构工程领域的仿真软件,由Bentley Systems开发。它能够进行结构分析和设计,支持多种结构类型,包括桥梁、建筑物、塔架等。STAAD.Pro提供了强大的建模工具,用户可以轻松创建复杂的结构模型,并进行静态和动态分析。软件还支持多种载荷组合,包括地震载荷,以及提供详细的报告和图纸输出,便于工程师进行设计和审查。STAAD.Pro是一款广泛应用于结构工程设计的软件,其界面直观,功能强大,能够进行结构分析与设计。菜单栏。

974

java接口查询_基于JAVA的免费天气预报接口查询

1、开通接口天气预报接口服务使用的聚合数据提供的免费接口,每天可以100次免费调用。可以通过https://www.juhe.cn/docs/api/id/73注册及开通。2、通过Java发起城市天气查询package cn.juhe;import net.sf.json.JSONObject;import java.io.*;import java.net.HttpURLConnection;i...

weixin_39945915的博客 403

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

利用百度车联网提供的天气查询接口用python查询天气信息以及安卓(Java)利用gson解析数据

利用百度车联网提供的天气查询接口用python查询天气信息(有较详细的接口返回json数据说明) (2)http://developer.baidu.com/map/carapi-7.htm 百度车联网接口说明中有天气查询的接口,目前是免费提供的(一天可以查询5000次) import json import urllib.request import urllib.parse ur

lxz26192的专栏 1942

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

java ip调天气预报接口_天气查询接口JAVA代码示例 天气预报API接口JAVA代码示例 iP138查询网...

public class QueryHelper {/*** txt|jsonp|xml*/public static String DATATYPE="text";public static String get(String urlString,String token) {try {URL url = new URL(urlString);HttpURLConnection conn = (...

weixin_42518930的博客 175

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

java微信天气查询接口,全国天气预报信息 API 接口

全国天气预报信息 API 接口精确到行政区的7日天气预报。1. 产品功能全国天气预报每隔 6 小时更新数据;精确到行政区级别的天气预报数据;提供最长 7 天的天气预报数据;提供每日小时级别的天气预报数据;提供本地日出日落、当日历史温度等附加数据;提供紫外线、穿衣、洗车、空气污染等额外指导数据;全接口支持 HTTPS(TLS v1.0 / v1.1 / v1.2 / v1.3);全面兼容 Apple...

weixin_42321940的博客 391

java第16次作业API接口查询天气

package com.imooc.weather; import com.imooc.weather.impl.WeatherUtilsImpl; import java.util.List; import java.util.Scanner; public class Application { public static void main(String[] args) { System.out.println("查询最近天气预报:"); Syst.

m0_64535103的博客 312

java微信天气查询接口_微信天气接口查询

weixin_32506617的博客 101

java微信天气查询接口,微信java图文天气预报

百度车联网V3的api,传城市名要用java.net.URLEncoder.encode 转utf-8,否则无效package test;import java.io.IOException;import java.io.InputStream;import java.io.PrintWriter;import java.net.URL;import java.net.URLConnection;...

weixin_31481495的博客 146

全国天气预报接口JAVA调用示例

step1:选择本文所示例的接口"全国天气预报接口" url:https://www.juhe.cn/docs/api/id/39/aid/87 step2:每个接口都需要传入一个参数key,相当于用户的令牌,所以第一步你需要申请一个key step3:看文档!!!学过java的同学们都知道,当我们对一个类或者方法不明白其意图和思想时,我们可以去查看文档,这里也不例外,而且对于英文不是特别好的

ishxiao的博客 6338

springboot 集成在线天气预报

前阵子项目中遇到了需要使用接口查询天气接口,之前以为很难,后面发现贼简单,话不多说直接上代码 // 文字转译 设置时间超时 public static final String DEF_CHATSET = "UTF-8"; public static final int DEF_CONN_TIMEOUT = 30000; public static final int DEF_READ_TIMEOUT = 30000; // 代理商 public static

mxasd的博客 646

天气预报接口文档,旅行,旅游平台,农业,交通,航空

天气预报接口文档,旅行,旅游平台,农业,交通,航空

APIsmileJ的博客 676
上一篇: java 邮箱 电话号码 格式效验 后端
下一篇: AtomicInteger @Async
libingbojava
博客等级 码龄9年 64粉丝 111原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值