因微信公共号提供城市天气预报服务,发现网山天气预报接口和环境数据接口方面资料比较乱,而且有不少内容已经失效,下面内容由过程日志整理形成,希望可用得上。 一 天气预报 国内的天气预报数据,主要是国家气象局和国外两个来源(指数据来源)...
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、返回的内容如下:
Hackernews 编译,转载请注明出处: Mozilla 在其 Firefox 浏览器中加入了带外数据软件升级,包含了两个高影响力的安全漏洞。 Mozilla 称,这两个漏洞正在被大肆利用。 标记为 cve-2022-26485和 cve-2022-26486的零日漏洞被描述为影响 XSLT ...
近日,两位安全研究人员成功入侵了亿万富翁兼电影制片人 Jeffrey Katzenberg 的 Mac 计算机,意味着 macOS 设备并不能自动抵御网络威胁。虽然没有提到特定的 macOS 设备型号,深谙社会工程的 SocialProof Security 首席执行官 Rachel Tobac 还...
3 月 24 日,欧盟管理机构宣布《数字市场法案》(Digital Markets Act,简称DMA)已达成共识,将会对欧洲的大型科技公司进行全面的监管。作为一项具有深远影响的雄心勃勃的法律,该法案中最引人注目的措施将要求每个大型科技公司(在欧盟拥有超过 750 亿欧元的市值或超过 4500 万人...
就在英国警方逮捕了 7 名嫌疑犯之后,近期非常猖獗的黑客组织 Lapsus$ 又有了新动作。在攻击微软、三星、NVIDIA 和 Okta 等公司之后,该组织再次宣布成功攻陷 Globant,后者是一家位于卢森堡的软件开发咨询公司。 在周三宣布自己“度假归来”之后,该组织在其 Telegram 频道...
据TechCrunch报道,美国政府通过悬赏1000万美元来寻找能够识别或定位黑客组织Sandworm成员的信息,从而加大了对六名俄罗斯情报官员的追捕力度。黑客组织Sandworm的成员为俄罗斯军事情报部门GRU的一个部门工作–以对关键基础设施,包括食品供应和能源部门发起破坏性和毁灭性的网络攻击而闻...
一个由多个全球执法机构组成的联盟–包括FBI、特勤局、英国国家犯罪署、欧洲刑警组织和其他机构–最近领导了一次行动,以查封RaidForums拥有的网络域名。RaidForums.com通常被描述为世界上最大的黑客论坛之一,它承载着一个留言板系统,恶意方可以在这里购买、出售和交易来自重大漏洞的黑客和...