Android编程实现获取新浪天气预报数据的方法
作者:越冬越酷 时间:2022-08-15 22:14:44
本文实例讲述了Android编程实现获取新浪天气预报数据的方法。分享给大家供大家参考,具体如下:
新浪天气预报地址:
http://php.weather.sina.com.cn/xml.php?city=武汉&password=DJOYnieT8234jlsK&day=0
其中,city后的城市可用java.net.URLEncoder.encode(“武汉”,” gb2312”);也可以直接写”武汉”,但不能用”wuhan”。Password固定
Day为0表示当天天气,1表示第二天的天气,2表示第三天的天气,以此类推,最大为4。
工具类:
1、定义成员
/** 新浪天气网址 */
public final String SINA_URL = "http://php.weather.sina.com.cn/xml.php";
/** 新浪天气XML调用密码 */
public final String PASSWORD = "DJOYnieT8234jlsK";
/** 城市 */
public String city;
/** 白天天气 */
public String status1;
/** 夜晚天气 */
public String status2;
/** 白天天气 拼音 */
public String figure1;
/** 夜晚天气拼音 */
public String figure2;
/** 白天风向 */
public String direction1;
/** 夜晚风向 */
public String direction2;
/** 白天风级 */
public String power1;
/** 夜晚风级 */
public String power2;
/** 白天温度 */
public String temperature1;
/** 夜晚温度 */
public String temperature2;
/** 体感温度 */
public String tgd;
/** 紫外线指数 */
public String zwx_l;
/** 紫外线说明 */
public String zwx_s;
/** 体感度指数 */
public String ssd_l;
/** 体感度说明 */
public String ssd_s;
/** 空调指数 */
public String ktk_l;
/** 空调说明 */
public String ktk_s;
/** 洗车指数 */
public String xcz_l;
/** 洗车说明 */
public String xcz_s;
/** 穿衣指数 */
public String chy_l;
/** 穿衣说明 */
public String chy_shuoming;
/** 污染物扩散条件 */
public String pollution_l;
/** 污染物扩散条件说明 */
public String pollution_s;
/** 感冒指数 */
public String gm_l;
/** 感冒说明 */
public String gm_s;
/** 运动指数 */
public String yd_l;
/** 运动说明 */
public String yd_s;
2、获取天气数据
/**
* 更新天气
*
* @param city
* 城市名
* @param day
* 0表示当天天气,1表示第二天的天气,2表示第三天的天气,以此类推,最大为4
*/
public void UpdateWeatherInfo(String city, String day) {
if (city.equals("")) {
isLoaded = false;
return;
}
String html = null;
try {
html = doGet(SINA_URL + "?city="
+ java.net.URLEncoder.encode(city, "gb2312") + "&password="
+ PASSWORD + "&day=" + day);
Document doc = Jsoup.parse(html);
if (doc.body().getElementsByTag("Profiles").size() == 0) {
isLoaded = false;
return;
}
if (doc.body().getElementsByTag("Profiles").get(0).getElementsByTag("Weather").size() == 0) {
isLoaded = false;
return;
}
Element element = doc.body().getElementsByTag("Profiles").get(0)
.getElementsByTag("Weather").get(0);
this.city = element.getElementsByTag("city").text();
status1 = element.getElementsByTag("status1").text();
status2 = element.getElementsByTag("status2").text();
figure1 = element.getElementsByTag("figure1").text();
figure2 = element.getElementsByTag("figure2").text();
direction1 = element.getElementsByTag("direction1").text();
direction2 = element.getElementsByTag("direction2").text();
power1 = element.getElementsByTag("power1").text();
power2 = element.getElementsByTag("power2").text();
temperature1 = element.getElementsByTag("temperature1").text();
temperature2 = element.getElementsByTag("temperature2").text();
tgd = element.getElementsByTag("tgd").text();
zwx_l = element.getElementsByTag("zwx_l").text();
zwx_s = element.getElementsByTag("zwx_s").text();
ssd_l = element.getElementsByTag("ssd_l").text();
ssd_s = element.getElementsByTag("ssd_s").text();
ktk_l = element.getElementsByTag("ktk_l").text();
ktk_s = element.getElementsByTag("ktk_s").text();
xcz_l = element.getElementsByTag("xcz_l").text();
xcz_s = element.getElementsByTag("xcz_s").text();
chy_l = element.getElementsByTag("chy_l").text();
chy_shuoming = element.getElementsByTag("chy_shuoming").text();
pollution_l = element.getElementsByTag("pollution_l").text();
pollution_s = element.getElementsByTag("pollution_s").text();
gm_l = element.getElementsByTag("gm_l").text();
gm_s = element.getElementsByTag("gm_s").text();
yd_l = element.getElementsByTag("yd_l").text();
yd_s = element.getElementsByTag("yd_s").text();
isLoaded = true;
} catch (UnsupportedEncodingException e) {
isLoaded = false;
}
}
3、访问网络
public static final String ENCODE = "utf-8";
public static String doGet(String url) {
try {
HttpGet httpGet = new HttpGet(url);
HttpClient hc = new DefaultHttpClient();
HttpResponse ht = hc.execute(httpGet);
if (ht.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
HttpEntity he = ht.getEntity();
InputStream is = he.getContent();
BufferedReader br = new BufferedReader(
new InputStreamReader(is));
String response = "";
String readLine = null;
while ((readLine = br.readLine()) != null) {
response = response + readLine;
}
is.close();
br.close();
return response;
} else {
return "error";
}
} catch (Exception e) {
return "error";
}
}
4、关于jsoup可参考:
http://baike.baidu.com/view/4066913.htm
希望本文所述对大家Android程序设计有所帮助。
标签:Android,新浪,天气
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Android Listview多tab上滑悬浮效果
2021-07-27 22:06:23
![](https://img.aspxhome.com/file/2023/8/114358_0s.jpg)
在Eclipse安装Spring boot插件的步骤(图文)
2023-01-14 05:04:05
![](https://img.aspxhome.com/file/2023/2/78352_0s.png)
springcloud中Ribbon和RestTemplate实现服务调用与负载均衡
2022-06-30 14:58:45
![](https://img.aspxhome.com/file/2023/5/61585_0s.png)
Android仿微信键盘切换效果
2022-05-01 08:06:41
![](https://img.aspxhome.com/file/2023/9/138919_0s.jpg)
java利用easyexcel实现导入与导出功能
2022-09-29 06:40:16
![](https://img.aspxhome.com/file/2023/8/125338_0s.png)
简述Mybatis增删改查实例代码
2023-03-06 18:07:53
![](https://img.aspxhome.com/file/2023/1/65311_0s.png)
浅谈Mybatis通用Mapper使用方法
2023-02-15 17:46:52
Java——对象初始化顺序使用详解
2023-11-01 01:08:46
Android使用ViewPager实现类似laucher左右拖动效果
2022-05-18 20:33:59
![](https://img.aspxhome.com/file/2023/4/98634_0s.png)
SpringMVC请求流程源码解析
2021-08-07 03:35:11
![](https://img.aspxhome.com/file/2023/3/64533_0s.jpg)
Kotlin 基础教程之异常
2022-10-31 06:34:52
SpringCloud用Zookeeper搭建配置中心的方法
2022-12-17 18:16:18
IDEA查看Scala的源码的教程图解
2023-12-13 22:50:45
![](https://img.aspxhome.com/file/2023/6/105946_0s.png)
谈谈你可能并不了解的java枚举
2023-11-09 21:08:55
![](https://img.aspxhome.com/file/2023/1/59021_0s.png)
java多线程编程学习(线程间通信)
2023-04-02 05:25:34
![](https://img.aspxhome.com/file/2023/3/81973_0s.png)
Java后端Tomcat实现WebSocket实例教程
2023-08-22 17:31:09
![](https://img.aspxhome.com/file/2023/0/58340_0s.png)
Android实现未读消息小红点显示实例
2022-05-18 07:57:27
![](https://img.aspxhome.com/file/2023/0/117140_0s.jpg)
java 动态增加定时任务示例
2023-07-29 06:56:00
Unity3D实现渐变颜色效果
2022-09-03 08:14:32
![](https://img.aspxhome.com/file/2023/0/116580_0s.jpg)
java实现gif动画效果(java显示动态图片)
2023-10-19 07:56:38