工作需要 展示一个简单的天气 在此做下记录 方便以后看下
package com.tempus.cqs.common.util.entity;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import org.codehaus.jettison.json.JSONObject;
import org.codehaus.jettison.json.JSONTokener;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class WeatherJsonUtil {
private static Logger logger = LoggerFactory.getLogger(Weather.class);
// 中央气象台的服务
public static Map<String, Object> getWeathMapFirst() {
Map<String, Object> weathMap = null;
try {
String url = "http://www.nmc.gov.cn/publish/weather/24/59493.html";
URL weathUrl = new URL(url);
HttpURLConnection connection = (HttpURLConnection) weathUrl
.openConnection();
InputStream in = connection.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(
in, "utf-8"));
String result = reader.readLine();
JSONTokener jt = new JSONTokener(result);
JSONObject resultObject = (JSONObject) jt.nextValue();
Weather weather1 = new Weather();
weather1.setCity("深圳");
weather1.setDate(resultObject.getString("day1"));
weather1.setImgName("http://forcast.weathertv.cn/img/weather_icon/"+dealImgNameFirst(resultObject.getString("img1"))+".png");
weather1.setTemp(resultObject.getString("temp1"));
weather1.setWeatherInfor(resultObject.getString("weather1"));
weather1.setWind(resultObject.getString("wind1"));
Weather weather2 = new Weather();
weather2.setCity("深圳");
weather2.setDate(resultObject.getString("day2"));
weather2.setImgName("http://forcast.weathertv.cn/img/weather_icon/"+dealImgNameFirst(resultObject.getString("img2"))+".png");
weather2.setTemp(resultObject.getString("temp2"));
weather2.setWeatherInfor(resultObject.getString("weather2"));
weather2.setWind(resultObject.getString("wind2"));
weathMap = new HashMap<String, Object>();
weathMap.put("dayWeath", weather1);
weathMap.put("nightWeath", weather2);
in.close();
reader.close();
} catch (Exception e) {
logger.error("解析中央气象台错误,参考地址http://www.nmc.gov.cn/");
}
return weathMap;
}
//中央气象网的服务 之前可以连接 现在却不能解析到了
public static Map<String, Object> getWeatherSecond() {
Map<String, Object> weathMap = null;
try {
String url = "http://m.weather.com.cn/atad/101280601.html";
URL weathUrl = new URL(url);
HttpURLConnection connection = (HttpURLConnection) weathUrl
.openConnection();
InputStream in = connection.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(
in, "utf-8"));
String result = reader.readLine();
JSONTokener jt = new JSONTokener(result);
JSONObject jn;
jn = (JSONObject) jt.nextValue();
String weatherinfo = jn.getString("weatherinfo");
JSONTokener resutltTokener = new JSONTokener(weatherinfo);
JSONObject resultObject = (JSONObject) resutltTokener.nextValue();
Weather weather1 = new Weather();
weather1.setDate(resultObject.getString("day1"));
weather1.setImgName(resultObject.getString("img1"));
weather1.setTemp(resultObject.getString("temp1"));
weather1.setWeatherInfor(resultObject.getString("weather1"));
weather1.setWind(resultObject.getString("wind1"));
Weather weather2 = new Weather();
weather2.setDate(resultObject.getString("day2"));
weather2.setImgName(resultObject.getString("img2"));
weather2.setTemp(resultObject.getString("temp2"));
weather2.setWeatherInfor(resultObject.getString("weather2"));
weather2.setWind(resultObject.getString("wind2"));
Weather weather3 = new Weather();
weather3.setDate(resultObject.getString("day3"));
weather3.setImgName(resultObject.getString("img3"));
weather3.setTemp(resultObject.getString("temp3"));
weather3.setWeatherInfor(resultObject.getString("weather3"));
weather3.setWind(resultObject.getString("wind3"));
weathMap = new HashMap<String, Object>();
weathMap.put("day1", weather1);
weathMap.put("day2", weather2);
weathMap.put("day3", weather3);
in.close();
reader.close();
} catch (Exception e) {
logger.error("解析中央气象网错误,参考地址( http://www.cma.gov.cn/ )");
}
return weathMap;
}
//处理图片名字的方法 由于d01--d1这种变化
public static String dealImgName(String imgName){
if(imgName.contains("d0")){
imgName = imgName.substring(imgName.indexOf("0")+1, imgName.length());
imgName = "d" + imgName;
}
if(imgName.contains("n0")){
imgName = imgName.substring(imgName.indexOf("0")+1, imgName.length());
imgName = "n" + imgName;
}
return imgName;
}
//处理图片名字的方法 由于d01--01这种变化
public static String dealImgNameFirst(String imgName){
if(imgName.startsWith("d")){
imgName = imgName.substring(1,imgName.length());
}
if(imgName.startsWith("n")){
imgName = imgName.substring(1,imgName.length());
}
return imgName;
}
}
分享到:
相关推荐
练习调用webservice调用查看天气,c# winfrom调用
此文档介绍了Android调用天气预报的WebService简单例子。
这个文档是java调用天气的方法,希望对你有所帮助
这是做门户网站用到的东东,天气预报调用,希望能对需要的人有所帮助
很多人调用中国天气网天气预报,但是不知道怎么生成令牌key,今天写了个demo分享给大家。
通过webservice服务器的调用实现查询天气,这是网路上发布的天气信息
asp.net 调用天气预报接口实现天气查寻源码
调用天气预报webService axis1.4
java调用天气预报接口,利用servlet调用天气预报接口 获得天气预报具体数据,显示在自己的网页中
C# 调用天气预报的webservice查询实时天气。。。vs2015开发的winform程序。简单操作。供新手学习。
利用公共webservice实现天气预报功能。 其目的是:为了学习如何调用webservice。 其中利用了无刷新技术,提高用户体验。适合与像本人这样的webservice初用者。
天气预报Js调用代码,取自天气网,因找不到好的天气Rss订阅服务,
参照这个网址http://zhangkui.blog.51cto.com/1796259/497324。实现C#调用WebService实现天气预报获取。完全能用。自己有编译通过。
雅虎天气API调用 http://blog.csdn.net/a497785609/article/details/16808123
WebService 的调用天气预报,使用wsimport命令生成webService客户端代码实例,java project 下载后可以直接运行
c# winform 调用公共天气预报webservice接口,初学者参考,大神忽略 c# winform 调用公共天气预报webservice接口,初学者参考,大神忽略
Android之Webservice详解与调用天气预报Webservice完整实例
获取城市天气的一个小文档,调用阿里云城市天气接口的一个小DOME,运用的是c#,喜欢的小伙伴们可以下载
根据很多天气预报调用方法,本人自己写了个demo,根据地图定位,获取当前城市,调用免费webservice接口,解析返回数据,展示3天内天气信息。本demo设置时间比较获取,不是频繁请求服务的(频繁请求带来接口查询数据...
android调用天气的demo实例,非常好用的例子,可以直接运行,本例子有一个bug,就是城市输入的时候,如果出现非城市名或者非法字符会出现闪退