java获取实时天气预报数据

2023-11-15

数据是从 www.webxml.com.cn上免费获取的。有需要也可以去购买服务。

api可以去该网站查看,这里用的是GET方式请求

123

每个城市citycode 也需要从这个网站上面去下载。

解析xml用到的是xwork-core-2.3.15.1.jar  

需要显示到页面,可以将数据序列化成json格式,再到页面去获取设值。

希望对新手有帮助。不喜勿喷

public class WeatherUtil {
	// private static final long serialVersionUID = 1L;
	private static final String SERVICES_HOST = "www.webxml.com.cn";// 主机
	private static final String WEATHER_SERVICES_URL = "http://ws.webxml.com.cn/WebServices/WeatherWS.asmx/";
	// 获取天气																	getWeather?theCityCode=&theUserID=
	private static final String WEATHER_QUERY_URL = WEATHER_SERVICES_URL	+ "getWeather?theUserID=&theCityCode=";


	public static List<String> getWeathers(int cityCode) {
		//定义一个集合装载添加数据
		List<String> weatherList = new ArrayList<String>();
		/*获取xml文档对象*/
		Document document;
		/*获取解析工厂*/
		DocumentBuilderFactory documentBF = DocumentBuilderFactory.newInstance();
		//设定命名空间
		documentBF.setNamespaceAware(true);
		try {
			//初始xml工厂
			DocumentBuilder db = documentBF.newDocumentBuilder();
			//获取天气数据接口返回的数据
			URL urlObj = new URL(WEATHER_QUERY_URL+ cityCode);
			// 打开连接
			URLConnection urlConn = urlObj.openConnection(); 
			// 通过地址访问主机,设置请求代理
			urlConn.setRequestProperty("Host", SERVICES_HOST);
			//开始连接
			urlConn.connect();
			//读取
			InputStream inputStream = urlConn.getInputStream();
			//开始解析
			document = db.parse(inputStream);
			//解析string节点
			NodeList nl = document.getElementsByTagName("string");
			System.out.println(nl);
			int len = nl.getLength();
			for (int i = 0; i < len; i++) {
				Node n = nl.item(i);//获取每一个string节点     
				//n.getFirstChild()获取文本节点
				String weather = n.getFirstChild().getNodeValue();
				weatherList.add(weather);
			}
			inputStream.close();
		} catch (ParserConfigurationException e) {
			e.printStackTrace();
		} catch (SAXException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return weatherList;
	}
	

	public static void main(String[] args) {
		List<String> strings = TmWeatherUtil.getWeathers(1665);
		System.out.println(strings);
	}
}

 有问题请留言

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java获取实时天气预报数据 的相关文章

  • java类的生命周期

    如图 1 加载 我们编写一个java的源文件 经过编译后生成一个后缀名为 class的文件 这结合四字节码文件 java虚拟机就识别这种文件 java的生命周期就是class文件从加载到消亡的过程 关于加载 其实 就是将源文件的class文
  • Java接口以及static和final关键字

    Java接口以及static和final关键字 一 static 二 final 三 让final元素可以初始化 不用固定赋值 四 接口 五 抽象方法 六 接口能够创建对象吗 匿名内部类 七 另一实例 开锁 一 static static代
  • java字符串基础操作

    1 字符串的特点 java lang String使用了final修饰 不能被继承 字符串底层封装了字符数组及针对字符数组的操作算法 字符串一旦创建 对象内容永远无法改变 但字符串引用 可以重新赋值 Java字符串在内存中采用Unicode
  • 今天发现rabbitMQ消息堆积

    发现有三十多万的消息堆积在10的queue里没有被消费 记录一下查看问题的步骤 1 jps 找出程序的PID 2 jstack PID 查看线程dump 发现rabbitMQ的consumer worker线程block住了 Thread
  • Java IO流 缓冲流-BufferedInputStream、BufferedOutputStream

    首先抛出一个问题 有了InputStream为什么还要有BufferedInputStream BufferedInputStream和BufferedOutputStream这两个类分别是FilterInputStream和FilterO
  • JVM工具-jstack

    jstack 打印线程堆栈信息 支持支持本地java进程 core文件以及远程java进程 命令格式 jstack options pid jstack options executable core jstack options serv
  • 什么是多态?对于多态的理解....

    什么是多态 我们都知道面向对象有四个基本特性 抽象 封装 继承 多态 概括可以理解为 抽象 封装 继承 是多态的基础 多态是抽象 封装 继承的表现 多态 是Java中非常重要的一部分 简单理解 不同类的 对象 对同一消息 做出了不同的响应就
  • 使用jemeter进行压力测试关注的指标

    一 压测设置 线程数 并发数量 能跑多少量 具体说是一次存在多少用户同时访问 Rame Up Period in seconds 表示JMeter每隔多少秒发动并发 理解成准备时长 设置虚拟用户数需要多长时间全部启动 如果线程数是20 准备
  • 动力节点老杜java基础视频笔记第一章 学前准备 (1)

    课堂截图 为什么使用截图工具 在听课的过程中 有的时候老师操作的比较快 通过截图的方式将老师的操作保存下来 以便后期的操作 另外截图之后的图片也可以用于笔记的记录 在笔记当中最好采用图文并茂的方式 这样更加利于知识的回顾 使用哪个截图工具
  • 7.java类中的方法

    1 类中的方法 1 实例方法 格式 访问限制修饰符 方法的返回值数据类型 方法名称 参数列表 方法体 解释 访问限制修饰符 public 缺省的 方法的返回值数据类型 就是方法的执行结果类型 有返回值时 方法的返回值数据类型一定是方法执行结
  • Java中变量的作用域【Java基础】

    最近在看 Thinking in Java 想把Java基础再巩固一下 在博客上遇到的以前没注意到的知识点或者较难的知识点记录下来 与大家分享 Java中的基本类型变量的作用域为 int x 1 变量x的作用域只在大括号内 System o
  • JAVA获取类的类对象的三种方式

    自定义一个类 MyClass 并声明该类的对象 class MyClass MyClass mClass1 new MyClass 1 2 3 在上面说过 Class 类的构造方法是私有的 只有 java 虚拟机可以调用该方法创建该类的对象
  • ThreadLocal学习

    1 threadLocal图解 java lang ThreadLocal类实现了线程的本地存储 ThreadLocal的内部实现 ThreadLocal的内部实现包括一个类似HashMap的对象 这里称之ThreadLocalMap Th
  • 一文彻底弄懂零拷贝原理

    零拷贝 零拷贝 Zero Copy 是一种 I O 操作优化技术 可以快速高效地将数据从文件系统移动到网络接口 而不需要将其从内核空间复制到用户空间 其在 FTP 或者 HTTP 等协议中可以显著地提升性能 但是需要注意的是 并不是所有的操
  • FastJson 之 List<Map>转化成对应List<Object>

    List
  • java 模拟库存管理系统

    本案例要求编写一个程序 模拟库存管理系统 该系统内容主要包括 商品入库 商品显示 和删除商品功能 此程序用手机举例 此管理系统分别为两个类Phone 和Test类 Phone类 确定四个变量 类 1 生成空参数构造方法 2 全部参数的构造方
  • AQS底层原理

    1 AQS能干嘛 是什么 能干嘛 加锁就会有阻塞 有阻塞就需要排队 实现排队必然需要有某种形式的队列来进行管理 是什么 废话 抽象的队列同步器 翻译一下 AQS是用来构建锁或者其它同步器组件的重量级基础框架及整个JUC体系的基石 通过内置的
  • java动态代理简单实例

    java动态代理简单实例 package hello import java lang reflect InvocationHandler import java lang reflect Method import java lang r
  • Java处理SSH-免密登录

    前提 需要测试主机之间能够免密 配置ssh请自行百度 jar包 旧版 com jcraft jsch 仅支持老版的密钥格式 旧版本 RSA
  • java连接oracle出现ORA-12505错误

    问题 sqlplus可以连接 但java连接报错 ORA 12505 ORA 12505 TNS listener does not currently know of SID given in connect descr 解析 原因 数据

随机推荐

  • leetcode 322. Coin Change硬币交换问题

    题目详细 描述 You are given coins of different denominations and a total amount of money amount Write a function to compute th
  • 美国国家安全局(NSA)网络攻击主战武器NOPEN

    国家计算机病毒应急处理中心14日正式发布了美国国家安全局专用 NOPEN 远控木马分析报告 揭露了美国情治部门的网络间谍手段 国家计算机病毒应急处理中心 信息安全摘要 近日 国家计算机病毒应急处理中心对名为 NOPEN 的木马工具进行了攻击
  • 排序算法--冒泡排序

    冒泡排序 基本思想 实例演示 代码实现 基础实现 代码优化 基本思想 基本思想 冒泡排序 类似于水中冒泡 较大的数沉下去 较小的数慢慢冒起来 假设从小到大 即为较大的数慢慢往后排 较小的数慢慢往前排 直观表达 每一趟遍历 将一个最大的数移到
  • 雅可比(jacobi)迭代法 matlab实现

    clc clear n input 请输入矩阵阶数 n for i 1 n fprintf 请输入矩阵第 d行 n i A i input end A B 1 input 请输入B向量 n B for i 1 n x i 0 x2 i 0
  • 动态规划之完全背包问题

    完全背包问题 题目 有 N N N 种物品和一个容量为 V V V 的背包 每种物品都有无限件可用 放入第 i
  • javascript 的MD5代码备份,跟java互通

    var MD5 function string function RotateLeft lValue iShiftBits return lValue lt
  • mybatis 批量增加 Parameter '__frch_item_0' not found. Available parameters are [list]

    当在mybatis用到foreach的时候 会报这个错误Parameter frch item 0 not found Available parameters are list 会出现的几种解决方案 例子 sql view plain c
  • 【Linux操作系统】【综合实验二 vi应用与shell脚本编辑】【浅试编辑命令】

    文章目录 一 实验目的 二 实验要求 三 实验内容 1 继续练习Linux系统的文件类 目录类 进程管理类与磁盘操作类常用命令 并使用常见的选择项 2 了解ed ex行编辑器与Emacs全屏幕编辑器的工作模式 基本操作命令 3 掌握vi的编
  • 静态测试

    之前对 静态测试 一直不怎么理解 一直徘徊在为什么要进行静态测试 看了下面这几篇文章 突然觉得的柳暗花明了 目前我正在测试的项目xx让我烦心的问题终于找到出路了 http qa taobao com p 8017 http qa taoba
  • 资产收集的方法总结

    资产收集的方法总结 文章目录 资产收集的方法总结 前言 一 资产收集基本名词概念 二 相关收集方法 1 fofa 2 google搜索语法 3 logo 4 favicon ico 5 关键字 6 维基百科 7 天眼查 企查查 8 微信公众
  • 设计模式之UML类图该怎么画

    关于可维护 可复用 可扩展 灵活性好的理解 生活中 印刷术和活字印刷 当需要对某些内容修改时 印刷术只要有一丁点变化 就需要重头再来 而活字印刷只需要进行部分修改即可 可维护 只更改要更改的内容 可复用 之前的内容并非用完就无用 后面仍可使
  • Caused by: java.lang.NoClassDefFoundError: javax/tools/ToolProvider

    解决方案 在pom文件中的scala maven plugin插件下面加入一个参数 pom xml配置如下
  • python + selenium实现自动登录操作(以淘宝为例)

    selenium操作不熟练的可以查看一下这篇文章 selenium操作大全 一 登录前准备操作 定位一下相对应html位置 输入一般为input标签 登录按钮一般为button 输入账号密码那块 定位代码 driver find eleme
  • 电脑主板跳线_电脑基础进阶必学知识,详解电脑主板跳线!

    在DIY装机时新手总会有不同的问题 虽然目前网上流传着各种版本的教学文章或者视频 但是细致的小技巧讲解还是有限 不少网友在装机的时候虽然大致明白各个硬件的组合 但是在跳线的环节可以难住了不少的人 也挡住了不少小白用户前进的脚步 确实机箱内部
  • 强化学习算法 DDPG 解决 CartPole 问题,代码逐条详解

    本文内容源自百度强化学习 7 日入门课程学习整理 感谢百度 PARL 团队李科浇老师的课程讲解 使用DDPG解决连续控制版本的CartPole问题 给小车一个力 连续量 使得车上的摆杆倒立起来 文章目录 一 安装依赖 二 导入依赖 三 设置
  • 微信小程序中实现车牌输入功能

    一 成品展示与介绍 在点击输入框的时候会弹出车牌输入键盘 二 相关思路解析 首先车牌号码由31位汉字 26位字母 10位数字组成的 开头第一位由省份简称的汉字 第二位字母根据省份下的城市或地区区分 最后的五位或者六位 是有字母和数字组成的
  • 开发工具篇 程序员计算器

    BYTE数据 到16进制 10进制
  • JVM--基础--27.2--工具--VisualVM--远程连接

    JVM 基础 27 2 工具 VisualVM 远程连接 1 准备工作 准备工作是为了测试使用 1 1 代码地址 https gitee com DanShenGuiZu learnDemo tree master visualvm lea
  • c#读取html 表格,c# – 如何将文本文件读取到DataTable

    我想从txt文件中提取数据并将其放入DataTable中 txt文件中的内容采用以下格式 sometext1 sometext2 sometext3 sometext4 sometext5 sometext6 sometext7 somet
  • java获取实时天气预报数据

    数据是从 www webxml com cn上免费获取的 有需要也可以去购买服务 api可以去该网站查看 这里用的是GET方式请求 每个城市citycode 也需要从这个网站上面去下载 解析xml用到的是xwork core 2 3 15