`

简单的天气调用

 
阅读更多
工作需要 展示一个简单的天气 在此做下记录 方便以后看下
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;
	} 
}

分享到:
评论

相关推荐

    java调用天气的接口

    Java 调用天气接口的知识点总结 Java 调用天气接口是指使用 Java 语言来调用天气预报服务的 WebService,获取当前天气信息和天气预报数据。下面是相关知识点的总结: 1. Java 调用 WebService Java 调用 ...

    天气预报调用详细说明配有实例

    本教程将详细讲解如何实现天气预报的调用,并通过实例帮助你理解这一过程。 一、天气预报API概述 天气预报API是互联网上提供的一种服务,允许开发者通过发送请求获取特定地点的气象数据。这些API通常返回包括温度、...

    C#调用WebService实现天气预报

    本示例中,我们将探讨如何利用C#调用WebService来获取天气预报信息。这个过程涉及到网络通信、XML数据解析以及对第三方API的集成。 首先,我们需要理解WebService的工作原理。WebService是一种基于HTTP协议的远程...

    c# winfrom 调用天气预报的webservice

    本篇将详细介绍如何在C# WinForms应用中调用WebService来获取今明两天的天气情况。 首先,了解WebService。WebService是一种基于Web的、可以被不同应用系统调用的服务,它通过标准的协议(如SOAP over HTTP)提供...

    java 通过axis调用天气预报的webservice

    标题中的“Java通过Axis调用天气预报的WebService”是指使用Java编程语言,通过Apache Axis库来访问和使用公开的天气预报Web服务。Apache Axis是一个开放源码的SOAP(简单对象访问协议)工具包,它允许开发者创建和...

    调用阿里云获取城市天气接口

    在压缩包文件“HuoQuTianqi”中,可能包含了一个简单的C#项目示例,演示了如何使用HttpClient发送请求并解析返回的天气数据。这个示例对于初学者来说非常有帮助,因为它展示了从头开始构建API调用的完整流程。通过...

    smartweather调用天气预报

    标题中的“smartweather调用天气预报”指的是使用特定的API(应用程序接口)或者服务来获取并展示天气预报信息。在本例中,"smartweather"可能是一个开发平台或工具,它提供了与天气预报数据交互的功能。这个过程...

    天气预报的调用

    在IT行业中,调用天气预报服务通常涉及到网络编程、API接口使用、数据解析等多个技术环节。下面我们将详细探讨这些知识点。 首先,"天气预报的调用"是指利用互联网上的资源来获取实时或预测的天气信息。这通常涉及...

    asp.net2.0 调用websevice 实现天气预报

    在本项目中,“asp.net2.0 调用websevice 实现天气预报”,我们将探讨如何利用ASP.NET 2.0集成Web服务(Web Service)来获取并展示实时天气信息,从而实现一个无刷新的天气预报应用。 首先,Web服务是一种基于XML的...

    天气预报js调用代码

    在JavaScript编程中,天气预报的调用通常涉及到与外部API接口的交互,这些接口由提供天气数据的服务商提供。在本例中,我们关注的是通过JavaScript来获取并展示天气信息,特别是从“天气网”这样的服务中获取数据。...

    android调用天气demo

    在Android开发中,调用天气信息是常见的功能需求,尤其对于构建本地化的生活服务类应用而言。本示例“android调用天气demo”提供了一个很好的起点,帮助开发者了解如何实现这一功能。不过,值得注意的是,这个demo...

    调用天气预报webservice

    这里我们关注的是“调用天气预报Web Service”使用Axis1.4,这是一个较老但仍然广泛使用的Java Web Service框架。下面将详细阐述相关知识点。 1. **Web Service**:Web Service是一种通过HTTP协议进行通信的服务,...

    asp.net调用百度天气ApI获取天气

    在这个场景中,我们关注的是如何利用ASP.NET来调用百度天气API,以获取并显示特定城市的未来三天天气预报。下面将详细介绍这个过程。 首先,了解API(Application Programming Interface)的概念是必要的。API是一...

    天气预报webservice vb调用实例

    在这个"天气预报webservice vb调用实例"中,我们将探讨如何使用Visual Basic(VB)这个编程语言来调用一个天气预报的Web服务,实现获取并显示天气信息的功能。 1. **Web Service介绍** Web Service是一种基于...

    asp.net 调用天气预报接口实现天气查寻源码

    在这个场景中,我们讨论的是如何利用ASP.NET技术调用天气预报接口,实现一个天气查询的功能。以下是对这个主题的详细解释: 一、ASP.NET Web API ASP.NET Web API 是ASP.NET框架的一部分,专门设计用来构建RESTful...

    WebService 的调用天气预报(附源码Demo)

    在这个示例中,我们关注的是如何使用WebService调用天气预报服务。 首先,我们需要了解`wsimport`工具。`wsimport`是Java SDK的一部分,用于从WSDL(Web Service Description Language)文件生成Java客户端存根类。...

    C#调用webservice查询实时天气

    在本文中,我们将深入探讨如何使用C#语言调用Web服务来查询实时天气。这个话题对于初学者来说是一个很好的起点,因为它是实际项目中常见的一种功能需求。通过学习这一技术,开发者可以掌握如何与远程服务器进行数据...

    基于J2ee的天气预报 调用webservice

    【基于J2EE的天气预报调用WebService】是Java Web开发中的一个重要应用场景,它涉及到如何通过Web服务获取并展示实时天气信息。在这个项目中,开发者使用了Java的J2EE平台,通过调用WebService接口来获取天气数据,...

    雅虎天气API调用

    雅虎天气API调用是开发人员获取实时天气信息的一种方式,它允许开发者通过发送特定的请求到雅虎的服务器,然后获取返回的JSON或XML格式的天气数据。这个API广泛应用于移动应用、网站或者任何需要集成天气信息的系统...

Global site tag (gtag.js) - Google Analytics