因微信公共号提供城市天气预报服务,发现网山天气预报接口和环境数据接口方面资料比较乱,而且有不少内容已经失效,下面内容由过程日志整理形成,希望可用得上。 一 天气预报 国内的天气预报数据,主要是国家气象局和国外两个来源(指数据来源)...
import java.net.*;
import java.util.*;
public class Demo {
public static void main(String[] args) throws Exception{
InputStreamReader isr = new InputStreamReader(System.in);
System.out.println("请输入要查询的城市");
BufferedReader br = new BufferedReader(isr);
String str = br.readLine();
br.close();
URL url = new URL("
(str, "UTF-8"));
URLConnection hul = url.openConnection();
InputStream is = hul.getInputStream();
byte[] by = new byte[1024];
int len = 0;
String address = "";
while((len=is.read(by))!=-1){
address += new String(by,0,len,"UTF-8");
}
System.out.println(address);
try {
//System.out.println(address.substring(address.indexOf("/em:")+6,address.indexOf("/h3")));
} catch (Exception e) {
System.out.println("对不起,您的输入有误");
}
}
}
//返回的是一个json格式,你自己解析一下吧。
参数:output:输出数据格式,可以是xml或json,默认为xml;
command:要查询的城市名称
可能会出现多个项,像这样:
[html] view plain copy print?
m q="广" gprid="iKCy1nr2SFGqEwa.Ugf2eA" c="广" n="10"
s k="Guangzhou" d="pt:iso=CNwoeid=2161838lon=113.268lat=23.1074s=Guangdongc=Chinapn=广州市"/
s k="Wuxue" d="pt:iso=CNwoeid=2163907lon=115.553lat=29.8505s=Hubeic=China"/
s k="Guangyuan" d="pt:iso=CNwoeid=2157635lon=105.818lat=32.443s=Sichuanc=Chinapn=广元"/
s k="Guangshui" d="pt:iso=CNwoeid=2163891lon=113.99lat=31.6134s=Hubeic=Chinapn=广水镇"/
s k="Guangxi" d="s:iso=CNwoeid=12578006lon=108.267lat=23.8597s=Guangxic=Chinapn=广西省"/
s k="Guangdong" d="s:iso=CNwoeid=12578019lon=113.419lat=22.8588s=Guangdongc=Chinapn=广东省"/
s k="Guanghan" d="t:iso=CNwoeid=2158448lon=104.276lat=30.9825s=Sichuanc=Chinapn=广汉市"/
s k="Sihui" d="t:iso=CNwoeid=2161893lon=112.685lat=23.3427s=Guangdongc=China"/
s k="Guang'an" d="t:iso=CNwoeid=2157942lon=106.636lat=30.4765s=Sichuanc=Chinapn=广安"/
s k="Guangning" d="t:iso=CNwoeid=2148035lon=121.787lat=41.5939s=Liaoningc=China"/
/m
!--
prd08.gossip.search.gq1.yahoo.com compressed/chunked Mon Nov 18 10:06:32 UTC 2013
--
如果是匹配的“广州”关键字,则就只有广州市的code数据了。
这里的woeid即是 城市代码
3.国内城市代码整理:下载Demo程序,将要查询的地区,写入文件bin\Debug\Data\cities.txt 即可(一行一个)
晴 , 多云 , 阴 , 阵雨 , 雷阵雨 , 雷阵雨伴有冰雹 , 雨夹雪 , 小雨 , 中雨 , 大雨 , 暴雨 , 大暴雨 , 特大暴雨 , 阵雪 , 小雪 , 中雪 , 大雪 , 暴雪 , 雾 , 冻雨 , 沙尘暴 , 小雨-中雨 , 中雨-大雨 , 大雨-暴雨 , 暴雨-大暴雨 , 大暴雨-特大暴雨 , 小雪-中雪 , 中雪-大雪 , 大雪-暴雪 , 浮尘 , 扬沙 , 强沙尘暴 , 霾
一 天气预报
国内的天气预报数据,主要是国家气象局和国外两个来源(指数据来源)。
国外方面主要是雅虎(XML格式,谷歌已经停掉了自家的天气API);
国内数据由国家气象局提供( *** ON格式)。
在知乎看到过一篇专业人士评论,雅虎可以提供全球范围的且非常精细的天气数据(小时级更新),但主要是通过计算机自动生成。而国家气象局则是各地经验丰富的专家人士结合计算机综合分析得出,在准确性上更胜一筹。我就这样信了!
国家气象局接口资源及用法
气象局的天气预报主页:移动版普通版 ,仔细挖掘这两个地址可以发现很多好东西哦。
特点:接口多,来自weather.com.cn和mobile.weather.com.cn都有,次数不限制,服务稳定,功能全面,优先推荐。
最近在做微信公众平台测试时,想在里面子菜单上添加查询未来几天(包括今天)天气的功能,就查找了下好用的天气预报查询接口API,使用比较多的有:国家气象局天气接口、新浪天气预报接口、百度天气预报接口、google天气接口、Yahoo天气接口等等,我使用的是百度提供的免费天气查询接口API,下面与大家分享下...
1、查询方式:
百度提供的是根据纬度和城市名查询天气情况
2、接口事例:
3、接口参数说明:
4、返回结果说明:
5、
//城市名
$city = '上海';
//对json格式的字符串进行编码
$arr =json_decode($str,TRUE);
print_r($atr);
//城市名
$city = '上海';
//获取json格式的数据
$str =file_get_contents("".$city."output=jsonak=5slgyqGDENN7Sy7pw29IUvrZ");
//对json格式的字符串进行编码
$arr =json_decode($str,TRUE);
print_r($atr);
6、返回页面的是json编码后的数据:
[plain] view plain copy print?
meta charset="UTF-8"
Array
(
[error] = 0
[status] = success
[date] = 2014-03-17
[results] = Array
(
[0] = Array
(
[currentCity]= 上海
[weather_data]= Array
(
[0]= Array
(
[date] = 周一(今天, 实时:19℃)
[dayPictureUrl] =
[nightPictureUrl] =
[weather] = 晴
[wind] = 西南风3-4级
[temperature] = 13℃
)
[1] = Array
(
[date]= 周二
[dayPictureUrl] =
[nightPictureUrl] =
[weather]= 多云转阴
[wind]= 东北风3-4级
[temperature] = 24 ~ 9℃
)
[2] = Array
(
[date]= 周三
[dayPictureUrl] =
[nightPictureUrl] =
[weather]= 中雨转小雨
[wind]= 东北风3-4级
[temperature] = 15 ~ 8℃
)
[3] = Array
(
[date]= 周四
[dayPictureUrl] =
[nightPictureUrl] =
[weather]= 多云转晴
[wind]= 北风3-4级
[temperature] = 14 ~ 6℃
)
)
)
)
)
meta charset="UTF-8"
Array
(
[error] = 0
[status] = success
[date] = 2014-03-17
[results] = Array
(
[0] = Array
(
[currentCity]= 上海
[weather_data]= Array
(
[0]= Array
(
[date] = 周一(今天, 实时:19℃)
[dayPictureUrl] =
[nightPictureUrl] =
[weather] = 晴
[wind] = 西南风3-4级
[temperature] = 13℃
)
[1] = Array
(
[date]= 周二
[dayPictureUrl] =
[nightPictureUrl] =
[weather]= 多云转阴
[wind]= 东北风3-4级
[temperature] = 24 ~ 9℃
)
[2] = Array
(
[date]= 周三
[dayPictureUrl] =
[nightPictureUrl] =
[weather]= 中雨转小雨
[wind]= 东北风3-4级
[temperature] = 15 ~ 8℃
)
[3] = Array
(
[date]= 周四
[dayPictureUrl] =
[nightPictureUrl] =
[weather]= 多云转晴
[wind]= 北风3-4级
[temperature] = 14 ~ 6℃
)
)
)
)
)
7、PHP中自带了处理json格式字符串的内置函数,下面做一个事例,并给出完整代码:
[php] view plain copy print?
metacharset="UTF-8"
?php
//城市名
$city = '上海';
//获取json格式的数据
$str = file_get_contents("".$city."output=jsonak=5slgyqGDENN7Sy7pw29IUvrZ");
//对json格式的字符串进行编码
$arr = json_decode($str,TRUE);
echo "城市:".$arr['results'][0]['currentCity']." 日期:".$arr['date']."br /br /";
foreach($arr['results'][0]['weather_data']as $val)
{
echo $val['date']."br/";
echo "天气:{$val['weather']}br/";
echo "风向:{$val['wind']}br/";
echo "温度:{$val['temperature']}br/br /";
}
?
metacharset="UTF-8"
?php
//城市名
$city = '上海';
//获取json格式的数据
$str = file_get_contents("".$city."output=jsonak=5slgyqGDENN7Sy7pw29IUvrZ");
//对json格式的字符串进行编码
$arr = json_decode($str,TRUE);
echo "城市:".$arr['results'][0]['currentCity']." 日期:".$arr['date']."br /br /";
foreach($arr['results'][0]['weather_data']as $val)
{
echo $val['date']."br/";
echo "天气:{$val['weather']}br/";
echo "风向:{$val['wind']}br/";
echo "温度:{$val['temperature']}br/br /";
}
?
8、返回的内容如下:
早些时候,美国卫星通信服务提供商 Viasat 遭受了一轮网络攻击,结果导致中东欧地区的服务出现了中断。而由 SentinelLabs 研究人员 Juan Andres Guerrero-Saade 和 Max van Amerongen 最新发布的安全研究报告可知,这口锅应该扣在一款名为“酸雨”(...
加拿大多伦多大学下属“公民实验室”(Citizen Lab)的研究人员当地时间周一发文称,该实验室的核心任务是对民间社会的数字威胁进行研究。在调查雇佣军间谍软件的过程中,他们偶尔会观察到一些案例,怀疑政府正在使用间谍软件对其他政府进行国际间谍活动。这些案件绝大多数都不属于他们的范围和任务。然而,在某...
电动汽车(EV)革命来了。在过去的十年里,插电式混合动力电动车已经从16000辆增长到超过200万辆,汽车高管们预计到2030年,超过50%的美国汽车将是全电动的。不难看出,专家们为何做出如此乐观的预测。除了不断增长的电动汽车车队,今年早些时候签署的美国国会两党基础设施协议将包括75亿美元,以帮助规...
随着勒索软件和世界各地其他网络攻击的增加,系统运营商更加担心复杂的 “虚假数据注入 “攻击,即黑客向其提供虚假的数据,欺骗电脑系统和人员,使其认为操作正常。然后,攻击者扰乱了工厂关键机器的功能,导致其运行不良或故障。当安全人员意识到他们被欺骗时,为时已晚,造成了灾难性的后果。 普渡大学的Hany A...
根据Meta(Facebook的母公司)的一份新的安全报告,一个与白俄罗斯有关的黑客组织试图入侵乌克兰军事人员的Facebook账户,并从黑客账户发布视频,谎称乌克兰军队投降。这场黑客行动之前被安全研究人员称为”Ghostwriter”,是由一个名为UNC1151的组织实施的,该组织在Mandian...
据报道,全球最大的肉类供应商JBS在周日遭到了黑客的攻击,这是全球食品供应链所面临的又一威胁。此前,新冠疫情已经对全球食品供应链造成了较大影响。周一,JBS公司通过电子邮件向外界表示,公司服务器遭到黑客有组织的攻击,从而不得不关闭了位于北美和澳洲的计算机网络。 JBS表示,这起黑客攻击事件有可能会推...