天气预报java代码
天气预报及代码
天气预报及代码天气预报及代码点击地图上的地区,可看天气预报,喜欢的朋友可分享。
可放在首页装扮博客用,当然,也可放到日志等网页中。
第一种样式点地区,看预报(分享代码处)代码如下:<TABLE border=0 cellSpacing=0 cellPadding=0width=400 bgColor=#bbccffalign=center><TBODY><TR><TD><CE NTER><EMBED height=345type=application/x-shockwave-flashpluginspage=/go/getflashplay er width=454src=/deco/2009/1224/chin a.swf allowNetworking="internal"allowScriptAccess="never" invokeurls="false"wmode="transparent"></CENTER><CENTER><A target="_blank"href="/blog/static/1021130 7720140161293412/"><IMG title="点击分享代码"alt="点击分享代码"src="/DownloadImg/2015/06/0 108/54275104_2.jpg"httpyyygggblogcom><STRONG><FONTcolor="#ff0000" size="2">点地区,看预报(<FONT color="#3344ff">分享代码处</FONT>)</FONT></STRONG></A>< ;/CENTER></TD></TR></TABLE>注:大小可以调整(只调整代码中的高度数值345和宽度数值454即可)。
JSP JavaBean实例---天气预报bean
JSP JavaBean实例---天气预报bean JSP JavaBean实例---天气预报bean---介绍本文档将介绍如何创建一个简单的天气预报JavaBean,以在JSP页面中显示天气信息。
使用JavaBean可以实现将数据与应用程序的其他部分分离,使得数据的获取和显示更加灵活和可维护。
创建JavaBean类首先,在Java项目中创建一个名为`WeatherBean`的Java类,用于表示天气预报的信息。
在该类中,我们可以定义需要的属性和方法来存储和处理天气数据。
public class WeatherBean {private String location;private String temperature;private String humidity;public WeatherBean() {// 默认构造函数}// 设置和获取属性的方法public String getLocation() {return location;}public void setLocation(String location) { this.location = location;}public String getTemperature() {return temperature;}public void setTemperature(String temperature) {this.temperature = temperature;}public String getHumidity() {return humidity;}public void setHumidity(String humidity) {this.humidity = humidity;}// 其他方法根据需求自行添加}在JSP页面中使用JavaBean在JSP页面中,我们可以通过使用JSP标准标签库(JSTL)来访问和显示JavaBean中的数据。
获取天气预报java代码
获取天⽓预报java代码import java.io.BufferedReader;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStreamReader;import .SocketTimeoutException;import .URL;import .URLConnection;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Calendar;import java.util.Date;import java.util.HashMap;import java.util.List;import java.util.Map;import net.sf.json.JSONObject;public class Weather {String cityid;URLConnection connectionData;StringBuilder sb;BufferedReader br;JSONObject jsonData;JSONObject info;public Weather(String cityid) throws IOException,NullPointerException{this.cityid = cityid;URL url = new URL("/data/"+cityid+".html");connectionData = url.openConnection();connectionData.setConnectTimeout(1000);try{br = new BufferedReader(new InputStreamReader(connectionData.getInputStream(), "utf-8"));sb = new StringBuilder();String line = null;while((line = br.readLine()) != null)sb.append(line);}catch (SocketTimeoutException e) {System.out.println("连接超时");}catch(FileNotFoundException e){System.out.println("加载⽂件出错");}String datas = sb.toString();jsonData = JSONObject.fromObject(datas);info = jsonData.getJSONObject("weatherinfo");List> list = new ArrayList>();for(int i=1;i<=6;i++){Calendar cal = Calendar.getInstance();cal.add(Calendar.DAY_OF_YEAR,i-1);Date date = cal.getTime();SimpleDateFormat sf = new SimpleDateFormat("yyyy年MM⽉dd⽇");Map map = new HashMap();map.put("city", info.getString("city").toString());map.put("date_y", sf.format(date));map.put("week", getWeek(cal.get(Calendar.DAY_OF_WEEK)));map.put("fchh", info.getString("fchh").toString());map.put("weather", info.getString("weather"+i).toString());map.put("temp", info.getString("temp"+1).toString());map.put("wind", info.getString("wind"+1).toString());map.put("fl", info.getString("fl"+1).toString());map.put("index", info.getString("index").toString());map.put("index_uv", info.getString("index_uv").toString());map.put("index_tr", info.getString("index_tr").toString());map.put("index_co", info.getString("index_co").toString());map.put("index_cl", info.getString("index_cl").toString());map.put("index_xc", info.getString("index_xc").toString());map.put("index_d", info.getString("index_d").toString());list.add(map);}for(int j=1;jMap wMap = list.get(j);System.out.println(wMap.get("city")+"\t"+wMap.get("date_y")+"\t"+wMap.get("week")+wMap.get("weather")+"\t"+wMap.get("temp")+"\t"+wMap.get("index_uv")); }}public String getWeek(int iw){String weekStr = "";switch (iw) {case 1:weekStr = "星期天";break;case 2:weekStr = "星期⼀";break;case 3:weekStr = "星期⼆";break;case 4:weekStr = "星期三";break;case 5:weekStr = "星期四";break;case 6:weekStr = "星期五";break;case 7:weekStr = "星期六";break;default:break;}return weekStr;}public static void main(String[] args){ try{new Weather("101010100");//北京市}catch (Exception e) {e.printStackTrace();}}}。
java调用天气接口快速获取多个城市的数据的方法
一、介绍在日常生活和工作中,获取多个城市的天气数据是非常常见的需求。
利用Java语言调用天气接口可以快速获取多个城市的天气数据,为我们提供及时准确的天气信息。
本文将介绍如何使用Java语言调用天气接口来快速获取多个城市的数据的方法。
二、选择合适的天气接口1. 确定需求需要确定自己的需求,例如需要获取哪些城市的天气数据、需要获取的天气信息有哪些等。
根据自己的需求,选择合适的天气接口。
2. 选择权威可靠的天气接口在选择天气接口时,需要选择权威可靠的接口,以获取准确的天气数据。
可以选择一些知名的天气数据提供商的接口,如我国气象局提供的天气接口、百度天气接口、阿里天气接口等。
三、编写Java代码调用天气接口1. 导入相关的Java库在编写Java代码前,需要导入相关的Java库,以便调用网络接口、json数据处理等功能。
2. 发起HTTP请求使用Java的网络编程库,例如HttpClient或URLConnection类,发起HTTP请求,向天气接口发送请求数据,获取返回的天气数据。
3. 解析返回的json数据天气接口通常会返回json格式的数据,需要使用Java的json处理库,如Gson或Jackson,对返回的json数据进行解析,提取出需要的天气信息。
4. 处理多个城市的天气数据根据自己的需求,可以编写循环或并发处理多个城市的天气数据,将获取的数据存储到合适的数据结构中,如List、Map等。
五、处理异常情况调用天气接口时,可能会遇到网络连接超时、接口返回异常等情况,需要编写相应的异常处理代码,保证程序的稳定性和可靠性。
六、总结通过以上方法,可以快速、准确地获取多个城市的天氰数据。
在实际的应用中,可以根据自己的需求和实际情况进行调整和优化,以更好地满足用户的需求。
希望本文对于使用Java语言调用天气接口快速获取多个城市的数据有所帮助。
七、优化处理1. 缓存数据为了提高效率,可以考虑对获取的天气数据进行缓存,避免频繁地调用天气接口。
Java实现天气预报
Java实现天⽓预报通过Java实现天⽓预报,该⽅法必须联⽹import org.apache.http.client.config.RequestConfig;import org.apache.http.client.methods.CloseableHttpResponse;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.impl.client.HttpClientBuilder;import org.apache.http.util.EntityUtils;import java.io.IOException;public class GetWeather {public static String getResult(String url) {try (CloseableHttpClient httpClient = HttpClientBuilder.create().build();CloseableHttpResponse response = httpClient.execute(new HttpGetConfig(url))) {String result = EntityUtils.toString(response.getEntity(),"utf-8"); //设置编码,防⽌乱码return result;} catch (IOException e) {e.printStackTrace();return "";}}}class HttpGetConfig extends HttpGet {public HttpGetConfig(String url) {super(url);setDefaultConfig();}private void setDefaultConfig() {this.setConfig(RequestConfig.custom().setConnectionRequestTimeout(1000 * 10).setConnectTimeout(1000 * 10).setSocketTimeout(1000 * 10).build());this.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:92.0) Gecko/20100101 Firefox/92.0"); }}import org.jsoup.Jsoup;import org.jsoup.nodes.Document;import org.jsoup.nodes.Element;import org.jsoup.select.Elements;import java.util.ArrayList;import java.util.LinkedHashMap;import java.util.List;import java.util.Map;public class GetWeatherMain {// public static void main(String[] args) {// GetWeatherMain htmlUtilTest= new GetWeatherMain();// htmlUtilTest.searchWeather("101110200");// }/**** @param* @return获取未来7天的天⽓预报*/public List<Map<String,String>> searchWeather(String id){String result= GetWeather.getResult("/weather/"+id+".shtml");Document document= Jsoup.parse(result);Elements elements;// 获取⽇期和星期elements=document.select("h1");List<String> dateList=new ArrayList<>();List<String> dayList=new ArrayList<>();for (int i = 0; i < 7; i++) {String text=elements.get(i).text();int length=text.length();dateList.add(text.substring(0,length-4));dayList.add(text.substring(length-3,length-1));}//System.out.println(dateList);//System.out.println(dayList);// 获取天⽓elements=document.select("p[class=wea]");List<String> weatherList=new ArrayList<>();for (Element item : elements) {weatherList.add(item.text());}//System.out.println(weatherList);// 获取温度,最⾼温和最低温elements=document.select("p[class=tem]");int i=0;List<String> highTempList=new ArrayList<>();List<String> lowTempList=new ArrayList<>();for (Element item : elements) {highTempList.add(item.select("span").text()+"℃");lowTempList.add(item.select("i").text());}//System.out.println(highTempList);//System.out.println(lowTempList);// 封装结果,每天⼀⾏,未来7天List<Map<String,String>> list=new ArrayList<>();for (int j = 0; j < 7; j++) {Map<String,String> map=new LinkedHashMap<>();map.put("⽇期",dateList.get(j));map.put("day",dayList.get(j));map.put("天⽓",weatherList.get(j));map.put("最⾼温度",highTempList.get(j));map.put("最底温度",lowTempList.get(j));list.add(map);}//list.forEach(System.out::println);return list;}}测试类public static void main(String[] args){String msg = "";GetWeatherMain getWeatherMain = new GetWeatherMain();List<Map<String,String>> list = getWeatherMain.searchWeather("101240101"); //这⾥需要传⼊城市ID,可以通过该链接进⾏查看msg = "【南昌地区天⽓预报】\n"+ list.get(0).toString() +"\n"+ "-----------------------------" + "\n" + list.get(1).toString(); //这⾥只获取两天的天⽓预报 msg = msg.replace('=',':').replace('{',' ').replace('}',' ').replace(',','\n');System.out.println(msg);}。
天气预报java代码
try
{
//调用Web Service
httpTranstation.call(SERVICE_NS + methodName, envelope);
if (envelope.getResponse() != null)
{
//获取服务器响应返回的SOAP消息
SoapObject result = (SoapObject) envelope.bodyIn;
SoapObject detail = (SoapObject) result.getProperty(methodName
+ "Result");
//解析服务器响应的SOAP消息。
return parseProvinceOrCity(detail);
{
//需要调用的方法名(获得本天气预报Web Services支持的城市信息,根据省份查询城市集合:带参数)
String methodName = "getSupportCityString";
HttpTransportSE httpTranstation = new HttpTransportSE(SERVICE_URL);
}
} catch (Exception e)
{
e.printStackTrace();
}
return null;
}
/**
*根据省份获取城市列表
*
* @param province
* @return
*/
public static List<String> getCityListByProvince(String province)
天气预报获取
import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileOutputStream;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.OutputStreamWriter;import .URL;import .URLConnection;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import org.w3c.dom.Document;import org.w3c.dom.Node;import org.w3c.dom.NodeList;public class Classes {/*** 获取SOAP的请求头,并替换其中的标志符号为用户输入的城市** 编写者:王景辉** @param city* 用户输入的城市名称* @return 客户将要发送给服务器的SOAP 请求*/private static String getSoapRequest(String city) {StringBuilder sb = new StringBuilder();sb.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>"+ "<soap:Envelope xmlns:xsi=\"/2001/XMLSchema-instance\" "+ "xmlns:xsd=\"/2001/XMLSchema\" "+"xmlns:soap=\"/soap/envelope/\">"+ "<soap:Body> <getWeatherbyCityName xmlns=\"/\">"+ "<theCityName>" + city+ "</theCityName> </getWeatherbyCityName>"+ "</soap:Body></soap:Envelope>");return sb.toString();}/*** 用户把SOAP请求发送给服务器端,并返回服务器点返回的输入流* 编写者:王景辉** @param city* 用户输入的城市名称* @return 服务器端返回的输入流,供客户端读取* @throws Exception*/private static InputStream getSoapInputStream(String city) throws Exception { try {String soap = getSoapRequest(city);if (soap == null) {return null;}URL url = new URL("/WebServices/WeatherWebService.asmx");URLConnection conn = url.openConnection();conn.setUseCaches(false);conn.setDoInput(true);conn.setDoOutput(true);conn.setRequestProperty("Content-Length", Integer.toString(soap.length()));conn.setRequestProperty("Content-Type", "text/xml; charset=utf-8");conn.setRequestProperty("SOAPAction","/getWeatherbyCityName");OutputStream os = conn.getOutputStream();OutputStreamWriter osw = new OutputStreamWriter(os, "utf-8");osw.write(soap);osw.flush();osw.close();InputStream is = conn.getInputStream();return is;} catch (Exception e) {e.printStackTrace();return null;}}/*** 对服务器端返回的XML进行解析* 编写者:王景辉** @param city* 用户输入的城市名称* @return 字符串用,分割*/public static String getWeather(String city) {try {Document doc;DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();dbf.setNamespaceAware(true);DocumentBuilder db = dbf.newDocumentBuilder();InputStream is = getSoapInputStream(city);doc = db.parse(is);NodeList nl = doc.getElementsByTagName("string");StringBuffer sb = new StringBuffer();for (int count = 0; count < nl.getLength(); count++) {Node n = nl.item(count);if (n.getFirstChild().getNodeValue().equals("查询结果为空!")) { sb = new StringBuffer("#");break;}sb.append(n.getFirstChild().getNodeValue() + "#/n");}is.close();return sb.toString();} catch (Exception e) {e.printStackTrace();return null;}}public static void main(String[] args) throws Exception {System.out.println(getWeather("北京"));}}。
详细雨滴java代码
FormMain frm = new FormMain();
}
}
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
import javax.swing.JPanel;
import net.mjrg.no18.conp.MyRain;
}
public void keyPressEvents(char ch)
{
if(nowTypeRain != null && nowTypeRain.isRun())
{
nowTypeRain.setTypeMsg(nowTypeRain.getTypeMsg()+ch);
{
rains.remove(m);
System.out.println("移除完成的雨滴!");
}
}
}
private String getMsg()
{
Random rnd = new Random();
int k = 1+rnd.nextInt(maxNum-1);
if(nowTypeRain.getTypeMsg().equals(""))
nowTypeRain = null;
else
return;
}
Iterator it = rains.iterator();
java调用中国天气网api获得天气预报信息的方法
java调⽤中国天⽓⽹api获得天⽓预报信息的⽅法本⽂实例讲述了java调⽤中国天⽓⽹api获得天⽓预报信息的⽅法。
分享给⼤家供⼤家参考。
具体实现⽅法如下://以冰城哈尔滨为例通过中国天⽓api调⽤天⽓信息private String getWeatherInfo2(){StringBuilder info = new StringBuilder();try {DefaultHttpClient httpclient = new DefaultHttpClient();HttpGet httget = new HttpGet("/data/101050101.html");ResponseHandler<String> responseHandler = new BasicResponseHandler();String responseBody = httpclient.execute(httget, responseHandler);System.out.println(responseBody);JsonParser jp = new JsonParser();JsonElement jse = jp.parse(responseBody);JsonObject jso = jse.getAsJsonObject().get("weatherinfo").getAsJsonObject();// String updTime = jso.get("fchh").getAsString();// if(updTime != null){// //温度// String j = jso.get("temp1").getAsString();//今天// String m = jso.get("temp2").getAsString();//明天// //天⽓情况// String j_weather = jso.get("weather1").getAsString();//今天// String m_weather = jso.get("weather2").getAsString();//明天// //风向风⼒// String j_wind = jso.get("wind1").getAsString();//今天// String m_wind = jso.get("wind2").getAsString();//明天// info.append("今天:").append(j).append(" ").append(j_weather).append(" ").append(j_wind).append("\n");// info.append("明天:").append(m).append(" ").append(m_weather).append(" ").append(m_wind).append("\n");// }String updTime = jso.get("fchh").getAsString();if(updTime != null){if(!updTime.trim().equals("18")){//温度String j = jso.get("temp1").getAsString();//今天String m = jso.get("temp2").getAsString();//明天//天⽓情况String j_weather = jso.get("weather1").getAsString();//今天String m_weather = jso.get("weather2").getAsString();//明天//风向风⼒String j_wind = jso.get("wind1").getAsString();//今天String m_wind = jso.get("wind2").getAsString();//明天info.append("今天:").append(j).append(" ").append(j_weather).append(" ").append(j_wind).append("\n");info.append("明天:").append(m).append(" ").append(m_weather).append(" ").append(m_wind).append("\n");}else{//18//温度String temp1 = jso.get("temp1").getAsString();//今天String temp2 = jso.get("temp2").getAsString();//今天String temp3 = jso.get("temp3").getAsString();//今天String j = temp1.split("~")[1] + "~" + temp2.split("~")[0];String m = temp2.split("~")[1] + "~" + temp3.split("~")[0];//明天//天⽓情况String weather1 = jso.get("weather1").getAsString();String weather2 = jso.get("weather2").getAsString();String weather3 = jso.get("weather3").getAsString();String j_weather = "";String j_weather_part1 = "";String j_weather_part2 = "";//判断是否有转if(weather1.indexOf("转") > 0){//有j_weather_part1 = weather1.split("转")[1];}else{j_weather_part1 = weather1;}if(weather2.indexOf("转") > 0){//有j_weather_part2 = weather2.split("转")[0];}else{j_weather_part2 = weather2;}if(j_weather_part1.equalsIgnoreCase(j_weather_part2)){j_weather = j_weather_part1;//今天}else{j_weather = j_weather_part1 + "转" + j_weather_part2;//今天}String m_weather = "";String m_weather_part1 = "";String m_weather_part2 = "";//判断是否有转if(weather2.indexOf("转") > 0){//有m_weather_part1 = weather2.split("转")[1];}else{m_weather_part1 = weather2;}if(weather3.indexOf("转") > 0){//有m_weather_part2 = weather3.split("转")[0];}else{m_weather_part2 = weather3;}if(m_weather_part1.equalsIgnoreCase(m_weather_part2)){m_weather = m_weather_part1;//今天}else{m_weather = m_weather_part1 + "转" + m_weather_part2;//明天}//风向风⼒String j_wind = jso.get("wind2").getAsString();//今天String m_wind = jso.get("wind3").getAsString();//明天info.append("今天:").append(j).append(" ").append(j_weather).append(" ").append(j_wind).append("\n");info.append("明天:").append(m).append(" ").append(m_weather).append(" ").append(m_wind).append("\n"); }}} catch (Exception e) {}return info.toString();}希望本⽂所述对⼤家的java程序设计有所帮助。
JAVA实现黑客帝国代码雨效果
JAVA实现⿊客帝国代码⾬效果import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyAdapter;import java.awt.event.KeyEvent;import java.awt.image.MemoryImageSource;import java.util.Random;import javax.swing.JDialog;import javax.swing.JPanel;import javax.swing.Timer;public class Rain extends JDialog implements ActionListener {private Random random = new Random();private Dimension screenSize;private JPanel graphicsPanel;//⾏⾼,列宽private final static int gap = 20;//存放⾬点顶部的位置信息(marginTop)private int[] posArr;//⾏数private int lines;//列数private int columns;public Rain() {initComponents();}private void initComponents() {setLayout(new BorderLayout());graphicsPanel = new GraphicsPanel();add(graphicsPanel, BorderLayout.CENTER);//设置光标不可见Toolkit defaultToolkit = Toolkit.getDefaultToolkit();Image image = defaultToolkit.createImage(new MemoryImageSource(0, 0, null, 0, 0));Cursor invisibleCursor = defaultToolkit.createCustomCursor(image, new Point(0, 0), "cursor");setCursor(invisibleCursor);//ESC键退出KeyPressListener keyPressListener = new KeyPressListener();this.addKeyListener(keyPressListener);//this.setAlwaysOnTop(true);//去标题栏this.setUndecorated(true);//全屏this.getGraphicsConfiguration().getDevice().setFullScreenWindow(this);this.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);setVisible(true);screenSize = Toolkit.getDefaultToolkit().getScreenSize();lines = screenSize.height / gap;columns = screenSize.width / gap;posArr = new int[columns + 1];random = new Random();for (int i = 0; i < posArr.length; i++) {posArr[i] = random.nextInt(lines);}//每秒10帧new Timer(100, this).start();}/*** @return 随机字符*/private char getChr() {return (char) (random.nextInt(94) + 33);}@Overridepublic void actionPerformed(ActionEvent e) {graphicsPanel.repaint();}private class GraphicsPanel extends JPanel {@Overridepublic void paint(Graphics g) {Graphics2D g2d = (Graphics2D) g;g2d.setFont(getFont().deriveFont(Font.BOLD));g2d.setColor(Color.BLACK);g2d.fillRect(0, 0, screenSize.width, screenSize.height);//当前列int currentColumn = 0;for (int x = 0; x < screenSize.width; x += gap) {int endPos = posArr[currentColumn];g2d.setColor(Color.CYAN);g2d.drawString(String.valueOf(getChr()), x, endPos * gap); int cg = 0;for (int j = endPos - 15; j < endPos; j++) {//颜⾊渐变cg += 20;if (cg > 255) {cg = 255;}g2d.setColor(new Color(0, cg, 0));g2d.drawString(String.valueOf(getChr()), x, j * gap);}//每放完⼀帧,当前列上⾬点的位置随机下移1~5⾏posArr[currentColumn] += random.nextInt(5);//当⾬点位置超过屏幕⾼度时,重新产⽣⼀个随机位置if (posArr[currentColumn] * gap > getHeight()) {posArr[currentColumn] = random.nextInt(lines);}currentColumn++;}}}private class KeyPressListener extends KeyAdapter {@Overridepublic void keyPressed(KeyEvent e) {if (e.getKeyCode() == KeyEvent.VK_ESCAPE) {System.exit(0);}}}public static void main(String[] args) {new Rain();}}。
java 获取天气预报 简单例子 保存数据库版
Java 获取天气预报信息1项目结构2准备条件开始之前首先需要下载dom4j、mysql 驱动、连接池架包。
文件分别如下:dom4j-1.6.1.jarmysql-connector-java-5.1.22-bin.jarcommons-dbcp-1.4.jarcommons-pool-1.6.jar3代码讲解3.1数据连接代码在项目的目录结构下,找到config .xml文件。
打开盖文件,在该文件的下面有<db></db>的标签。
在该标签中填写关于数据的连接。
如下图:在该文件中,数据路的连接只需要修改如下的代码:<db><db_driver>com.mysql.jdbc.Driver</db_driver><db_url>jdbc:mysql://数据库IP:3306/tianqi</db_url><db_username>用户名</db_username><db_password>密码</db_password></db>3.2创建数据脚本城市信息表:CREATE TABLE `city` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`city` varchar(255) DEFAULT NULL,`sheng` varchar(255) DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8; 天气信息表:CREATE TABLE `tianqi` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`city` varchar(255) DEFAULT NULL,`sheng` varchar(255) DEFAULT NULL,`update_time` varchar(20) DEFAULT NULL,`shikuang1` varchar(500) DEFAULT NULL,`kongqi1` varchar(200) DEFAULT NULL,`tianqi1` varchar(500) DEFAULT NULL,`gaikuang1` varchar(200) DEFAULT NULL,`qiwen1` varchar(200) DEFAULT NULL,`fengli1` varchar(200) DEFAULT NULL,`tupian_1_1` varchar(60) DEFAULT NULL,`tupian_1_2` varchar(60) DEFAULT NULL,`gaikuang2` varchar(200) DEFAULT NULL,`qiwen2` varchar(200) DEFAULT NULL,`fengli2` varchar(200) DEFAULT NULL,`tupian_2_1` varchar(60) DEFAULT NULL,`tupian_2_2` varchar(60) DEFAULT NULL,`gaikuang3` varchar(200) DEFAULT NULL,`qiwen3` varchar(200) DEFAULT NULL,`fengli3` varchar(200) DEFAULT NULL,`tupian_3_1` varchar(60) DEFAULT NULL,`tupian_3_2` varchar(60) DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8;3.3城市信息配置在config.xml文件中,复制如下的代码:<sheng_name name="河南"><city_name name="郑州" value="y"/><city_name name="周口" value="y"/><city_name name="开封" value="y"/><city_name name="洛阳" value="y"/><city_name name="商丘" value="n"/><city_name name="新乡" value="n"/><city_name name="焦作" value="n"/></sheng_name>sheng_name:省的名称city_name:属于该省的城市。
天气预报系统java,web,mysql实践报告(一)
天气预报系统java,web,mysql实践报告(一)天气预报系统java, web, mysql实践报告1. 简介•介绍天气预报系统的背景和意义•概述本篇报告的主要内容和目标2. 系统需求分析•描述天气预报系统的功能需求和性能需求•分析用户需求,包括用户角色和用户界面设计3. 系统设计•设计系统的架构和模块划分•陈述系统的数据流程和业务流程4. 技术选型•探讨为何选择Java作为开发语言•分析选择Web作为前端框架的原因•解释为何选择MySQL作为数据库系统5. 系统实现1.后端实现:–描述使用Java语言开发后端的过程–展示后端代码的关键部分2.前端实现:–介绍使用Web框架开发前端的过程–展示前端页面的关键部分6. 数据库设计•分析系统的数据结构和数据关系•展示数据库表的设计和关联关系7. 系统测试•说明系统测试的目的和方法•展示测试结果和解决方案8. 总结与展望•对整个系统的开发过程进行总结•展望系统的未来发展和改进方向以上是一份关于天气预报系统java, web, mysql实践报告的Markdown格式的文章。
文章通过标题和副标题的方式,将内容按照逻辑进行了组织和展示。
希望这篇报告能够对读者理解和学习天气预报系统的开发实践有所帮助。
1. 简介天气预报系统是一种提供即时天气信息的应用程序,它可以帮助用户了解当地或其他地区的天气状况。
在日常生活中,天气预报系统对于人们的出行、外出活动安排以及农业、交通等行业的决策都具有重要的参考价值。
本报告旨在介绍一个基于Java、Web和MySQL技术实现的天气预报系统。
通过实践开发这个系统,我们将探索并展示如何利用Java作为后端开发语言、Web作为前端框架以及MySQL作为数据库系统的优势,来实现一个功能完善、性能稳定的天气预报系统。
2. 系统需求分析天气预报系统的功能需求主要包括: - 用户可以查看实时天气信息 - 用户可以查询特定地区的天气信息 - 用户可以设置并接收天气预警通知在性能需求方面,系统需要保证: - 快速响应用户请求,尽量减少等待时间 - 数据更新及时,保证用户获取到准确的天气信息3. 系统设计为了实现功能需求,我们设计了以下模块: - 用户管理模块:负责用户注册、登录和个人信息管理 - 天气查询模块:负责提供实时天气查询功能,并存储查询记录 - 天气预警模块:负责检测天气预警信息,并向用户发送通知系统的数据流程如下: 1. 用户发送查询请求到服务器 2. 服务器接收请求并调用天气查询模块获取天气信息 3. 服务器返回数据给用户,并将查询记录存储到数据库 4. 天气预警模块定时检测预警信息,并向用户发送通知4. 技术选型我们选择Java作为后端开发语言的原因是其拥有丰富的类库和框架,能够快速实现系统功能,并具有良好的可维护性和扩展性。
Java调用天气预报调用代码
Java调用天气预报调用代码在学习编程的过程中,我觉得不止要获得课本的知识,更多的是通过学习技术知识提高解决问题的能力,这样我们才能走在最前方,更多Java学习,请搜索疯狂Java;天气预报调用代码最近要做一个网站需要用到天气预报,本来是想找到API,自己写一个自己的天气预报小程序的,没有成功,只好去找现成的代码调用。
经过测试我找到了几种现在还可以使用的调用代码,由于大部分效果使用的是框架调用别人的代码,所以当别人的网站修改了代码的时候有的效果可能显示不出来需要到相关网站查看修改。
如果有能力还是自己写一个好啊。
天气预报调用代码1、265 天气<iframe src="/weather.htm" width="168" height="54" frameborder="no" border="0" marginwidth="0&quoat; marginheight="0"scrolling="no"></iframe>优缺点:只需要这一段,他会自己根据访问者IP给出当地的天气,可是不能自己定制,你要想看其他的城市还需要访问它的网站,在此不太推荐。
2、新浪天气<IFRAME ID='ifm2' WIDTH='260' HEIGHT='70' ALIGN='CENTER' MARGINWIDTH='0' MARGINHEIGHT='0' HSPACE='0' VSPACE='0' FRAMEBORDER='0' SCROLLING='NO'src="/iframe/weather/500100.html"></iframe>优缺点:只显示一个城市,需要自己知道该城市的代码,具体代码可以访问这里(有的可能不准)。
天气预报接口代码
天气预报接口代码(1)这是你想要的天气预报代码,由中央气象台提供数据,最准确最权威的天气预报,能够根据访客不同的IP地址显示不同城市的天气预报下面是源程序代码:<iframe src="" width="160" height="60"frameborder="no" border="0" marginwidth="0" marginheight="0" scrolling="no"></iframe> (3)名称:新浪天气预报代码代码:<IFRAME ID='ifm2' WIDTH='260' HEIGHT='70' ALIGN='CENTER' MARGINWIDTH='0' MARGINHEIGHT='0' HSPACE='0' VSPACE='0' FRAMEBORDER='0' SCROLLING='NO'src=""></iframe>说明:这种适合于在网页的头栏插入。
上面的城市可以自定,比如石家庄可改成别的。
城市代码:"110100","北京""120100","天津"1"130101","石家庄" "130201","唐山" "130301","秦皇岛" "130701","张家口" "130801","承德" "131001","廊坊" "130401","邯郸" "130501","邢台" "130601","保定" "130901","沧州" "133001","衡水" "140101","太原" "140201","大同" "140301","阳泉"2"140501","晋城" "140601","朔州" "142201","忻州" "142331","离石" "142401","榆次" "142601","临汾" "142701","运城" "140401","长治" "150101","呼和浩特" "150201","包头" "150301","乌海" "152601","集宁" "152701","巴彦浩特" "152801","临河"3"152921","鄂尔多斯" "150401","赤峰" "152301","通辽" "152502","锡林浩特" "152101","海拉尔" "152201","乌兰浩特" "210101","沈阳" "210201","大连" "210301","鞍山" "210401","抚顺" "210501","本溪" "210701","锦州" "210801","营口" "210901","阜新"4"211101","盘锦" "211201","铁岭" "211301","朝阳" "211401","葫芦岛" "210601","丹东" "220101","长春" "220201","吉林" "220301","四平" "220401","辽源" "220601","松原" "222301","白城" "222401","延边" "220501","通化" "230101","哈尔滨"5"230301","鸡西" "230401","鹤岗" "230501","双鸭山" "230701","伊春" "230801","佳木斯" "230901","七台河" "231001","牡丹江" "232301","绥化" "230201","齐齐哈尔" "230601","大庆" "232601","黑河" "232700","大兴安岭" "310100","上海" "320101","南京"6"320201","无锡" "320301","徐州" "320401","常州" "320501","苏州" "320600","南通" "320701","连云港" "320801","淮阴" "320901","盐城" "321001","扬州" "321101","镇江" "321102","泰州" "321103","宿迁" "330101","杭州" "330201","宁波"7"330301","温州" "330401","嘉兴" "330501","湖州" "330601","绍兴" "330701","金华" "330801","衢州" "330901","舟山" "332501","丽水" "332602","台州" "340101","合肥" "340201","芜湖" "340301","蚌埠" "340401","淮南" "340501","马鞍山"8"340601","淮北" "340701","铜陵" "340801","安庆" "341001","黄山市" "342101","阜阳" "342201","宿州" "342301","滁州" "342401","六安" "342501","宣城" "342601","巢湖" "342901","池州" "350101","福州" "350201","厦门" "350301","莆田"9"350401","三明" "350501","泉州" "350601","漳州" "352101","南平" "352201","宁德" "352601","龙岩" "352602","陇南" "352603","庆阳" "360101","南昌" "360201","景德镇" "362101","赣州" "360301","萍乡" "360401","九江" "360501","新余"10"360601","鹰潭" "362201","宜春" "362301","上饶" "362401","吉安" "370101","济南" "370201","青岛" "370301","淄博" "370401","枣庄" "370501","东营" "370601","烟台" "370701","潍坊" "370801","济宁" "370901","泰安" "371001","威海"11"371100","日照" "372301","滨州" "372401","德州" "372501","聊城" "372801","临沂" "372901","菏泽" "372902","莱芜" "410101","郑州" "410201","开封" "410301","洛阳" "410401","平顶山" "410501","安阳" "410601","鹤壁" "410701","新乡"12"410801","焦作" "410901","濮阳" "411001","许昌" "411101","漯河" "411201","三门峡" "412301","商丘" "412701","周口" "412801","驻马店" "412901","南阳" "413001","信阳" "420101","武汉" "420201","黄石" "420301","十堰" "420400","随州"13"420501","宜昌" "420601","襄樊" "420701","鄂州" "420801","荆门" "422103","黄冈" "422201","孝感" "422301","咸宁" "422421","荆州" "422801","恩施" "430101","长沙" "430401","衡阳" "430501","邵阳" "432801","郴州" "432901","永州"14"430801","韶山" "430802","张家界" "433001","怀化" "433101","吉首" "430201","株洲" "430301","湘潭" "430601","岳阳" "430701","常德" "432301","益阳" "432501","娄底" "440101","广州" "440301","深圳" "441501","汕尾" "441301","惠州"15"441601","河源" "441801","清远" "441901","东莞" "440401","珠海" "440701","江门" "441201","肇庆" "442001","中山" "440801","湛江" "440901","茂名" "440201","韶关" "440501","汕头" "441401","梅州" "441701","阳江" "441702","潮州"16"441703","顺德" "441704","揭阳" "441705","云浮" "450101","南宁" "450401","梧州" "452501","玉林" "450301","桂林" "452601","百色" "452701","河池" "452802","钦州" "450201","柳州" "450501","北海" "450502","防城港" "450503","贵港"17"450504","贺州" "460100","海口" "460200","三亚" "460300","西沙群岛" "510101","成都" "513321","眉山" "513101","雅安" "513229","峨嵋山" "510301","自贡" "500100","重庆" "500102","万州" "500103","涪陵" "512901","南充" "510501","泸州"18"510601","德阳" "510701","绵阳" "510901","遂宁" "511001","内江" "511101","乐山" "512501","宜宾" "510801","广元" "513021","达州" "513401","资阳" "510401","攀枝花" "510402","阿坝" "510403","甘孜" "510404","凉山" "510405","广安"19"510406","巴中" "500239","黔江" "520101","贵阳" "520200","六盘水" "522201","铜仁" "522501","安顺" "522601","凯里" "522701","都匀" "522301","兴义" "522421","毕节" "522101","遵义" "530101","昆明" "530201","德宏" "532201","曲靖"20"532301","楚雄" "532401","玉溪" "532501","红河" "532621","文山" "532721","思茅" "532101","昭通" "532821","西双版纳" "532901","大理" "533001","保山" "533121","怒江" "533221","丽江" "533321","迪庆" "533521","临沧" "540101","拉萨"21"542121","昌都" "542221","山南" "542301","日喀则" "542421","那曲" "542523","阿里" "542621","林芝" "610101","西安" "610201","铜川" "610301","宝鸡" "610401","咸阳" "612101","渭南" "612301","汉中" "612401","安康" "612501","商洛"22"612601","延安" "612701","榆林" "620101","兰州" "620401","白银" "620301","金昌" "620501","天水" "622201","张掖" "622301","武威" "622421","定西" "622701","平凉" "622901","临夏" "620201","嘉峪关" "622102","酒泉" "630100","西宁"23"632121","果洛" "632221","海西" "632321","格尔木" "632521","海东" "632621","海北" "632721","玉树" "632802","黄南" "640101","银川" "640201","石嘴山" "642101","吴忠" "642221","固原" "650101","乌鲁木齐" "650201","克拉玛依" "652101","吐鲁番"24"652201","哈密" "652301","昌吉" "652701","博乐" "652801","库尔勒" "652901","阿克苏" "653001","克州" "653101","喀什" "654101","伊犁" "655001","石河子" "655002","塔城" "655003","阿勒泰" "710001","台北" "211001","辽阳" "653201","和田"25"820000","澳门""810000","香港"第一种:代码:效果预览:<iframe width="145" height="130" border="0" align="center" marginwidth="0"marginheight="0" hspace="0" vspace="0" frameborder="0" scrolling="no"src="" allowTransparency="true"></iframe>说明:这种适合于在网页的边栏插入。
java天气预报城市代码XML格式以及获取方法
天气预报城市代码一览<?xml version="1.0"encoding="UTF-8"?><city code="0000"value="城市"><city code="101010100"value="北京"/><city code="101010200"value="海淀"/><city code="101010300"value="朝阳"/><city code="101010400"value="顺义"/><city code="101010500"value="怀柔"/><city code="101010600"value="通州"/><city code="101010700"value="昌平"/><city code="101010800"value="延庆"/><city code="101010900"value="丰台"/><city code="101011000"value="石景山"/><city code="101011100"value="大兴"/><city code="101011200"value="房山"/><city code="101011300"value="密云"/><city code="101011400"value="门头沟"/><city code="101011500"value="平谷"/><city code="101011600"value="八达岭"/><city code="101011700"value="佛爷顶"/><city code="101011800"value="汤河口"/><city code="101011900"value="密云上甸子"/><city code="101012000"value="斋堂"/><city code="101012100"value="霞云岭"/><city code="101020100"value="上海"/><city code="101020200"value="闵行"/><city code="101020300"value="宝山"/><city code="101020400"value="川沙"/><city code="101020500"value="嘉定"/><city code="101020600"value="南汇"/><city code="101020700"value="金山"/><city code="101020800"value="青浦"/><city code="101020900"value="松江"/><city code="101021000"value="奉贤"/><city code="101021100"value="崇明"/><city code="101021101"value="陈家镇"/> <city code="101021102"value="引水船"/> <city code="101021200"value="徐家汇"/> <city code="101021300"value="浦东"/><city code="101030100"value="天津"/><city code="101030200"value="武清"/><city code="101030300"value="宝坻"/><city code="101030400"value="东丽"/><city code="101030500"value="西青"/><city code="101030600"value="北辰"/><city code="101030700"value="宁河"/><city code="101030800"value="汉沽"/><city code="101030900"value="静海"/><city code="101031000"value="津南"/><city code="101031100"value="塘沽"/><city code="101031200"value="大港"/><city code="101031300"value="平台"/><city code="101031400"value="蓟县"/><city code="101040100"value="重庆"/><city code="101040200"value="永川"/><city code="101040300"value="合川"/><city code="101040400"value="南川"/><city code="101040500"value="江津"/><city code="101040600"value="万盛"/><city code="101040700"value="渝北"/><city code="101040800"value="北碚"/><city code="101040900"value="巴南"/><city code="101041000"value="长寿"/><city code="101041100"value="黔江"/><city code="101041200"value="万州天城"/> <city code="101041300"value="万州龙宝"/> <city code="101041400"value="涪陵"/><city code="101041500"value="开县"/><city code="101041600"value="城口"/><city code="101041700"value="云阳"/><city code="101041800"value="巪溪"/><city code="101041900"value="奉节"/><city code="101042000"value="巪山"/><city code="101042100"value="潼南"/><city code="101042200"value="垫江"/><city code="101042300"value="梁平"/><city code="101042400"value="忠县"/><city code="101042500"value="石柱"/><city code="101042600"value="大足"/><city code="101042700"value="荣昌"/><city code="101042800"value="铜梁"/><city code="101042900"value="璧山"/><city code="101043000"value="丰都"/><city code="101043100"value="武隆"/><city code="101043200"value="彭水"/><city code="101043300"value="綦江"/><city code="101043400"value="酉阳"/><city code="101043500"value="金佛山"/> <city code="101043600"value="秀山"/><city code="101043700"value="沙坪坝"/><city code="101050101"value="哈尔滨"/> <city code="101050102"value="双城"/><city code="101050103"value="呼兰"/><city code="101050104"value="阿城"/><city code="101050105"value="宾县"/><city code="101050106"value="依兰"/><city code="101050107"value="巴彦"/><city code="101050108"value="通河"/><city code="101050109"value="方正"/><city code="101050110"value="延寿"/><city code="101050111"value="尚志"/><city code="101050112"value="亓常"/><city code="101050113"value="木兰"/><city code="101050201"value="齐齐哈尔"/><city code="101050202"value="讷河"/> <city code="101050203"value="龙江"/> <city code="101050204"value="甘南"/> <city code="101050205"value="富裕"/> <city code="101050206"value="依安"/> <city code="101050207"value="拜泉"/> <city code="101050208"value="克山"/> <city code="101050209"value="克东"/> <city code="101050210"value="泰来"/> <city code="101050301"value="牡丹江"/> <city code="101050302"value="海林"/> <city code="101050303"value="穆棱"/> <city code="101050304"value="林口"/> <city code="101050305"value="绥芬河"/> <city code="101050306"value="宁安"/> <city code="101050307"value="东宁"/> <city code="101050401"value="佳木斯"/> <city code="101050402"value="汤原"/> <city code="101050403"value="抚远"/> <city code="101050404"value="桦川"/> <city code="101050405"value="桦南"/> <city code="101050406"value="同江"/> <city code="101050407"value="富锦"/> <city code="101050501"value="绥化"/> <city code="101050502"value="肇东"/> <city code="101050503"value="安达"/> <city code="101050504"value="海伦"/> <city code="101050505"value="明水"/> <city code="101050506"value="望奊"/> <city code="101050507"value="兰西"/> <city code="101050508"value="青冈"/> <city code="101050509"value="庆安"/> <city code="101050510"value="绥棱"/> <city code="101050601"value="黑河"/> <city code="101050602"value="嫩江"/> <city code="101050603"value="孙吴"/><city code="101050604"value="逊克"/><city code="101050605"value="亓大连池"/> <city code="101050606"value="北安"/><city code="101050701"value="大兴安岭"/> <city code="101050702"value="塔河"/><city code="101050703"value="漠河"/><city code="101050704"value="呼玛"/><city code="101050705"value="呼中"/><city code="101050706"value="新林"/><city code="101050707"value="阿木尔"/> <city code="101050708"value="加格达奇"/> <city code="101050801"value="伊春"/><city code="101050802"value="乌伊岭"/> <city code="101050803"value="亓营"/><city code="101050804"value="铁力"/><city code="101050805"value="嘉荫"/><city code="101050901"value="大庆"/><city code="101050902"value="林甸"/><city code="101050903"value="肇州"/><city code="101050904"value="肇源"/><city code="101050905"value="杜蒙"/><city code="101051002"value="七台河"/> <city code="101051003"value="勃利"/><city code="101051101"value="鸡西"/><city code="101051102"value="虎林"/><city code="101051103"value="密山"/><city code="101051104"value="鸡东"/><city code="101051201"value="鹤岗"/><city code="101051202"value="绥滨"/><city code="101051203"value="萝北"/><city code="101051301"value="双鸭山"/> <city code="101051302"value="集贤"/><city code="101051303"value="宝清"/><city code="101051304"value="饶河"/><city code="101060101"value="长春"/><city code="101060102"value="农安"/> <city code="101060103"value="德惠"/> <city code="101060104"value="九台"/> <city code="101060105"value="榆树"/> <city code="101060106"value="双阳"/> <city code="101060201"value="吉林"/> <city code="101060202"value="舒兰"/> <city code="101060203"value="永吉"/> <city code="101060204"value="蛟河"/> <city code="101060205"value="磐石"/> <city code="101060206"value="桦甸"/> <city code="101060207"value="烟筒山"/> <city code="101060301"value="延吉"/> <city code="101060302"value="敦化"/> <city code="101060303"value="安图"/> <city code="101060305"value="和龙"/> <city code="101060306"value="天池"/> <city code="101060307"value="龙五"/> <city code="101060308"value="珲春"/> <city code="101060309"value="图们"/> <city code="101060310"value="松江"/> <city code="101060311"value="罗子沟"/> <city code="101060312"value="延边"/> <city code="101060401"value="四平"/> <city code="101060402"value="双辽"/> <city code="101060403"value="梨树"/> <city code="101060404"value="公主岭"/> <city code="101060405"value="伊通"/> <city code="101060406"value="孤家子"/> <city code="101060501"value="通化"/> <city code="101060502"value="梅河口"/> <city code="101060503"value="柳河"/> <city code="101060504"value="辉南"/> <city code="101060505"value="集安"/> <city code="101060506"value="通化"/> <city code="101060601"value="白城"/><city code="101060602"value="洮南"/> <city code="101060603"value="大安"/> <city code="101060604"value="镇赉"/> <city code="101060605"value="通榆"/> <city code="101060701"value="辽源"/> <city code="101060702"value="东丰"/> <city code="101060801"value="松原"/> <city code="101060802"value="乾安"/> <city code="101060803"value="前郭"/> <city code="101060804"value="长岭"/> <city code="101060805"value="扶余"/> <city code="101060901"value="白山"/> <city code="101060902"value="靖宇"/> <city code="101060903"value="临江"/> <city code="101060904"value="东岗"/> <city code="101060905"value="长白"/><city code="101070101"value="沈阳"/> <city code="101070102"value="苏家屯"/> <city code="101070103"value="辽中"/> <city code="101070104"value="康平"/> <city code="101070105"value="法库"/> <city code="101070106"value="新民"/> <city code="101070107"value="于洪"/> <city code="101070108"value="新城子"/> <city code="101070201"value="大连"/> <city code="101070202"value="瓦房店"/> <city code="101070203"value="金州"/> <city code="101070204"value="普兰店"/> <city code="101070205"value="旅顺"/> <city code="101070206"value="长海"/> <city code="101070207"value="庄河"/> <city code="101070208"value="皮口"/> <city code="101070209"value="海洋岛"/> <city code="101070301"value="鞍山"/> <city code="101070302"value="台安"/><city code="101070303"value="岫岩"/> <city code="101070304"value="海城"/> <city code="101070401"value="抚顺"/> <city code="101070403"value="清原"/> <city code="101070404"value="章党"/> <city code="101070501"value="本溪"/> <city code="101070502"value="本溪县"/> <city code="101070503"value="草河口"/> <city code="101070504"value="桓仁"/> <city code="101070601"value="丹东"/> <city code="101070602"value="凤城"/> <city code="101070603"value="宽甸"/> <city code="101070604"value="东港"/> <city code="101070605"value="东沟"/> <city code="101070701"value="锦州"/> <city code="101070702"value="凌海"/> <city code="101070703"value="北宁"/> <city code="101070704"value="义县"/> <city code="101070705"value="黑山"/> <city code="101070706"value="北镇"/> <city code="101070801"value="营口"/> <city code="101070802"value="大石桥"/> <city code="101070803"value="盖州"/> <city code="101070901"value="阜新"/> <city code="101070902"value="彰武"/> <city code="101071001"value="辽阳"/> <city code="101071002"value="辽阳县"/> <city code="101071003"value="灯塔"/> <city code="101071101"value="铁岭"/> <city code="101071102"value="开原"/> <city code="101071103"value="昌图"/> <city code="101071104"value="西丰"/> <city code="101071201"value="朝阳"/> <city code="101071202"value="建平"/> <city code="101071203"value="凌源"/> <city code="101071204"value="喀左"/><city code="101071205"value="北票"/><city code="101071206"value="羊山"/><city code="101071207"value="建平县"/><city code="101071301"value="盘锦"/><city code="101071302"value="大洼"/><city code="101071303"value="盘山"/><city code="101071401"value="葫芦岛"/><city code="101071402"value="建昌"/><city code="101071403"value="绥中"/><city code="101071404"value="兴城"/><city code="101080101"value="呼和浩特"/><city code="101080102"value="土默特左旗"/><city code="101080103"value="托克托"/><city code="101080104"value="和林格尔"/><city code="101080105"value="清水河"/><city code="101080106"value="呼和浩特市郊区"/><city code="101080107"value="武川"/><city code="101080201"value="包头"/><city code="101080202"value="白云鄂博"/><city code="101080203"value="满都拉"/><city code="101080204"value="土默特右旗"/><city code="101080205"value="固阳"/><city code="101080206"value="达尔罕茂明安联合旗"/> <city code="101080207"value="石拐"/><city code="101080301"value="乌海"/><city code="101080401"value="集宁"/><city code="101080402"value="卓资"/><city code="101080403"value="化德"/><city code="101080404"value="商都"/><city code="101080405"value="希拉穆仁"/><city code="101080406"value="兴和"/><city code="101080407"value="凉城"/><city code="101080408"value="察哈尔右翼前旗"/><city code="101080409"value="察哈尔右翼中旗"/><city code="101080410"value="察哈尔右翼后旗"/><city code="101080411"value="四子王旗"/><city code="101080412"value="丰镇"/><city code="101080501"value="通辽"/><city code="101080502"value="舍伯吐"/><city code="101080503"value="科尔沁左翼中旗"/> <city code="101080504"value="科尔沁左翼后旗"/> <city code="101080505"value="青龙山"/><city code="101080506"value="开鲁"/><city code="101080507"value="库伦旗"/><city code="101080508"value="奈曼旗"/><city code="101080509"value="扎鲁特旗"/><city code="101080510"value="高力板"/><city code="101080511"value="巴雅尔吐胡硕"/> <city code="101080512"value="通辽钱家店"/><city code="101080601"value="赤峰"/><city code="101080602"value="赤峰郊区站"/><city code="101080603"value="阿鲁科尔沁旗"/> <city code="101080604"value="浩尔吐"/><city code="101080605"value="巴林左旗"/><city code="101080606"value="巴林右旗"/><city code="101080607"value="林西"/><city code="101080608"value="克什克腾旗"/><city code="101080609"value="翁牛特旗"/><city code="101080610"value="岗子"/><city code="101080611"value="喀喇沁旗"/><city code="101080612"value="八里罕"/><city code="101080613"value="宁城"/><city code="101080614"value="敖汉旗"/><city code="101080615"value="宝过图"/><city code="101080701"value="鄂尔多斯"/><city code="101080703"value="达拉特旗"/><city code="101080704"value="准格尔旗"/><city code="101080705"value="鄂托克前旗"/><city code="101080706"value="河南"/><city code="101080707"value="伊克乌素"/><city code="101080708"value="鄂托克旗"/><city code="101080709"value="杭锦旗"/><city code="101080710"value="乌审旗"/><city code="101080711"value="伊金霍洛旗"/> <city code="101080712"value="乌审召"/><city code="101080713"value="东胜"/><city code="101080801"value="临河"/><city code="101080802"value="亓原"/><city code="101080803"value="磴口"/><city code="101080804"value="乌拉特前旗"/> <city code="101080805"value="大佘太"/><city code="101080806"value="乌拉特中旗"/> <city code="101080807"value="乌拉特后旗"/> <city code="101080808"value="海力素"/><city code="101080809"value="那仁宝力格"/> <city code="101080810"value="杭锦后旗"/><city code="101080811"value="巴盟农试站"/> <city code="101080901"value="锡林浩特"/><city code="101080902"value="朝克乌拉"/><city code="101080903"value="二连浩特"/><city code="101080904"value="阿巴嘎旗"/><city code="101080905"value="伊和郭勒"/><city code="101080906"value="苏尼特左旗"/> <city code="101080907"value="苏尼特右旗"/> <city code="101080908"value="朱日和"/><city code="101080909"value="东乌珠穆沁旗"/> <city code="101080910"value="西乌珠穆沁旗"/> <city code="101080911"value="太仆寺旗"/><city code="101080912"value="镶黄旗"/><city code="101080913"value="正镶白旗"/><city code="101080914"value="正兰旗"/><city code="101080915"value="多伦"/><city code="101080916"value="博克图"/><city code="101080917"value="乌拉盖"/><city code="101080918"value="白日乌拉"/><city code="101080919"value="那日图"/><city code="101081000"value="呼伦贝尔"/><city code="101081001"value="海拉尔"/><city code="101081002"value="小二沟"/><city code="101081003"value="阿荣旗"/><city code="101081004"value="莫力达瓦旗"/><city code="101081005"value="鄂伦春旗"/><city code="101081006"value="鄂温克旗"/><city code="101081007"value="陈巴尔虎旗"/><city code="101081008"value="新巴尔虎左旗"/> <city code="101081009"value="新巴尔虎右旗"/> <city code="101081010"value="满洲里"/><city code="101081011"value="牙克石"/><city code="101081012"value="扎兰屯"/><city code="101081014"value="额尔古纳"/><city code="101081015"value="根河"/><city code="101081016"value="图里河"/><city code="101081101"value="乌兰浩特"/><city code="101081102"value="阿尔山"/><city code="101081103"value="科尔沁右翼中旗"/> <city code="101081104"value="胡尔勒"/><city code="101081105"value="扎赉特旗"/><city code="101081106"value="索伦"/><city code="101081107"value="突泉"/><city code="101081108"value="霍林郭勒"/><city code="101081201"value="阿拉善左旗"/><city code="101081202"value="阿拉善右旗"/><city code="101081203"value="额济纳旗"/><city code="101081204"value="拐子湖"/><city code="101081205"value="吉兰太"/><city code="101081206"value="锡林高勒"/><city code="101081207"value="头道湖"/><city code="101081208"value="中泉子"/><city code="101081209"value="巴彦诺尔贡"/><city code="101081210"value="雅布赖"/><city code="101081211"value="乌斯太"/><city code="101081212"value="孪五滩"/><city code="101090101"value="石家庄"/> <city code="101090102"value="五陉"/> <city code="101090103"value="正定"/> <city code="101090104"value="栾城"/> <city code="101090105"value="行唐"/> <city code="101090106"value="灵寿"/> <city code="101090107"value="高邑"/> <city code="101090108"value="深泽"/> <city code="101090109"value="赞皇"/> <city code="101090110"value="无枀"/> <city code="101090111"value="平山"/> <city code="101090112"value="元氏"/> <city code="101090113"value="赵县"/> <city code="101090114"value="辛集"/> <city code="101090115"value="藁城"/> <city code="101090116"value="晋洲"/> <city code="101090117"value="新乐"/> <city code="101090201"value="保定"/> <city code="101090202"value="满城"/> <city code="101090203"value="阜平"/> <city code="101090204"value="徐水"/> <city code="101090205"value="唐县"/> <city code="101090206"value="高阳"/> <city code="101090207"value="容城"/> <city code="101090208"value="紫荆关"/> <city code="101090209"value="涞源"/> <city code="101090210"value="望都"/> <city code="101090211"value="安新"/> <city code="101090212"value="易县"/> <city code="101090213"value="涞水"/> <city code="101090214"value="曲阳"/> <city code="101090215"value="蠡县"/> <city code="101090216"value="顺平"/> <city code="101090217"value="雄县"/> <city code="101090218"value="涿州"/> <city code="101090219"value="定州"/>。
(源代码)android --天气预报
android --天气预报今天参考了别人的关于android平台的天气预报,自己也修改后实现自己要实现的格式,特地拿出来分享:首先要导入第三方包:ksoap2-android-assembly-2.4-jar-with-dependencies.jar主程序的代码:package com.sebservice;import java.io.IOException;import java.io.UnsupportedEncodingException;import org.ksoap2.SoapEnvelope;import org.ksoap2.serialization.SoapObject;import org.ksoap2.serialization.SoapSerializationEnvelope;import org.ksoap2.transport.HttpTransportSE;import org.xmlpull.v1.XmlPullParserException;import android.app.Activity;import android.app.AlertDialog;import android.app.AlertDialog.Builder;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.Toast;public class WebsActivity extends Activity {private Button okButton;/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.main);okButton = (Button) this.findViewById(R.id.bt1);okButton.setOnClickListener(new Button.OnClickListener() {@Overridepublic void onClick(View v) {String city = "北京";getWeather(city);}});}private static final String NAMESPACE = "/";// WebService地址private static String URL = "/webservices/weatherw ebservice.asmx";private static final String METHOD_NAME = "getWeatherbyCityName";private static String SOAP_ACTION = "/getWeatherbyCity Name";private String weatherToday;private SoapObject detail;public void getWeather(String cityName) {try {SoapObject rpc = new SoapObject(NAMESPACE, METHOD_NAME);rpc.addProperty("theCityName", cityName);SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnve lope.VER11);envelope.bodyOut = rpc;envelope.dotNet = true;envelope.setOutputSoapObject(rpc);HttpTransportSE ht = new HttpTransportSE(URL);ht.debug = true;ht.call(SOAP_ACTION, envelope);detail =(SoapObject) envelope.getResponse();getw(detail,city);return;} catch (Exception e) {e.printStackTrace();}}private void getw(SoapObject detail,String local)throws UnsupportedEncodingEx ception{String str=detail.getProperty(6).toString();String show="所查城市:"+local;show=show+"\n今天是:"+str.split(" ")[0];show=show+"\n天气:"+str.split(" ")[1];show=show+"\n风级:"+detail.getProperty(7).toString().split(" ")[0];show=show+"\n"+detail.getProperty(10).toString().split(" ")[0];show=show+"\n温馨提示:\n"+detail.getProperty(11).toString().split(" ")[0]; Builder al=new AlertDialog.Builder(this);al.setTitle("天气预报");al.setPositiveButton("确定", null);al.setMessage(show.toString());al.create().show();}}布局文件的内容是:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android" android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" ><TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="@string/hello" /><Buttonandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:id="@+id/bt1"android:text="查看北京天气"/></LinearLayout>3、还要在androidmanifest.xml加入权限<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="/apk/res/android" package="com.sebservice"android:versionCode="1"android:versionName="1.0" ><uses-sdk android:minSdkVersion="10" /><applicationandroid:icon="@drawable/ic_launcher"android:label="@string/app_name" ><activityandroid:label="@string/app_name"android:name=".WebsActivity" ><intent-filter ><action android:name="android.intent.action.MAIN" /><category android:name="UNCHER" /></intent-filter></activity></application><uses-permission android:name="android.permission.INTERNET"></uses-permi ssion></manifest>分类: android。
全国天气预报接口
全国天气预报接口查询天气预报在APP中常用的一个常用功能,聚合数据全国天气预报接口可以根据根据城市名/id查询天气、根据IP查询天气、据GPS坐标查询天气、查询城市天气三小时预报,并且支持全国不同城市天气预报查询。
代码描述:基于JAVA的全国天气预报接口调用示例,根据文档中注明的需求参数,调用接口返回数据。
关联数据:全国天气预报接口接口地址:https:///docs/api/id/39step1:选择本文所示例的接口"全国天气预报接口" url:/docs/api/id/39/aid/87step2:每个接口都需要传入一个参数key,相当于用户的令牌,所以第一步你需要申请一个keystep3:看文档!!!学过java的同学们都知道,当我们对一个类或者方法不明白其意图和思想时,我们可以去查看文档,这里也不例外,而且对于英文不是特别好的同学来说很幸运的是,聚合网站上的文档都是中文版本的,比起阅读java源码里的英文文档应该轻松很多.全国天气预报接口下面有六个子接口,打开第一个接口链接,看文档发现需要传入一个城市名或者城市ID参数,这个参数我们可以通过第六个子接口获取(接口之间参数的调用类似于java中方法之间的调用),即支持城市列表获取.所以示例中我们先调用这个接口.调用接口涉及到请求网络资源的问题,这里我封装了一个工具类,包含GET和POST两种方法step4:上代码Demo1:网络访问工具类(封装get和post方法)1.package juheAPI;2.3.import java.io.BufferedReader;4.import java.io.BufferedWriter;5.import java.io.InputStream;6.import java.io.InputStreamReader;7.import java.io.OutputStream;8.import java.io.OutputStreamWriter;9.import .HttpURLConnection;10.import .URL;11.import java.util.Map;12.13.public class PureNetUtil {14.15.public static String get(String url){16.return post(url,null);17.}18.19.public static String post(String url,Map param){20.HttpURLConnection conn=null;21.try{22.URL u=new URL(url);23.conn=(HttpURLConnection) u.openConnection();24.StringBuffer sb=null;25.if(param!=null){//如果请求参数不为空26.sb=new StringBuffer();27.28.//默认为false,post方法需要写入参数,设定true29.conn.setDoOutput(true);30.//设定post方法,默认get31.conn.setRequestMethod("POST");32.//获得输出流33.OutputStream out=conn.getOutputStream();34.//对输出流封装成高级输出流35.BufferedWriter writer=new BufferedWriter(new OutputStreamWriter(out));36.//将参数封装成键值对的形式37.for(Map.Entry s:param.entrySet()){38.sb.append(s.getKey()).append("=").append(s.getValue()).append("&");39.}40.//将参数通过输出流写入41.writer.write(sb.deleteCharAt(sb.toString().length()-1).toString());42.writer.close();//一定要关闭,不然可能出现参数不全的错误43.sb=null;44.}45.conn.connect();//建立连接46.sb=new StringBuffer();47.//获取连接状态码48.int recode=conn.getResponseCode();49.BufferedReader reader=null;50.if(recode==200){51.//Returns an input stream that reads from this open connection52.//从连接中获取输入流53.InputStream in=conn.getInputStream();54.//对输入流进行封装55.reader=new BufferedReader(new InputStreamReader(in));56.String str=null;57.sb=new StringBuffer();58.//从输入流中读取数据59.while((str=reader.readLine())!=null){60.sb.append(str).append(System.getProperty("line.separator"));61.}62.//关闭输入流63.reader.close();64.if(sb.toString().length() == 0) {65.return null;66.}67.return sb.toString().substring(0,68.sb.toString().length() - System.getProperty("line.separator").length());69.}70.} catch(Exception e) {71. e.printStackTrace();72.return null;73.}finally{74.if(conn!=null)//关闭连接75.conn.disconnect();76.}77.return null;78.}79.80.}Demo2:调用获取城市列表接口示例1.package juheAPI;2.3.import net.sf.json.JSONArray;4.import net.sf.json.JSONObject;5.6.7.8.public class GetCityList {9.10.public static String excute(){11.String url="/weather/citys?key=***a7558b2e0bedaa19673f74a6809ce";//接口URL12.//PureNetUtil是一个封装了get和post方法获取网络请求数据的工具类13.return PureNetUtil.get(url);//使用get方法14.}15.16.public static String getIDBycityName(String cityName) {17.String result=excute();//返回接口结果,得到json格式数据18.if(result!=null){19.JSONObject obj=JSONObject.fromObject(result);20.result=obj.getString("resultcode");//得到返回状态码21.if(result!=null&&result.equals("200")){//200表示成功返回数据22.result=obj.getString("result");//得到城市列表的json格式字符串数组23.JSONArray arr=JSONArray.fromObject(result);24.for(Object o:arr){//对arr进行遍历25.//将数组中的一个json个数字符串进行解析26.obj=JSONObject.fromObject(o.toString());27.28.//以city这个key为线索判断所需要寻找的这条记录29.result=obj.getString("district");30.//防止输入城市名不全,如苏州市输入为苏州,类似与模糊查询31.if(result.equals(cityName)||result.contains(cityName)){32.result=obj.getString("id");//得到ID33.return result;34.}35.}36.}37.}38.return result;39.}40.public static void main(String[] args) {41.System.out.println(getIDBycityName("香港"));42.}43.}Demo3:调用根据城市名/id查询天气1.package juheAPI;2.3.import net.sf.json.JSONObject;4.5.6.7.public class WeatherReportByCity {8.9.public static String excute(String cityName){10.String url=//此处以返回json格式数据示例,所以format=2,以根据城市名称为例,cityName传入中文11."/weather/index?cityname="+cityName+"&key=***a7558b2e0bedaa19673f74a6809ce";12.return PureNetUtil.get(url);//通过工具类获取返回数据13.}14.15.public static String GetTodayTemperatureByCity(String city) {16.String result=excute(city);17.if(result!=null){18.JSONObject obj=JSONObject.fromObject(result);19.20.result=obj.getString("resultcode");21.22.if(result!=null&&result.equals("200")){23.result=obj.getString("result");24.//此时result中数据有多个key,可以对其key进行遍历,得到对个属性25.obj=JSONObject.fromObject(result);26.//今日温度对应的key是today27.result=obj.getString("today");28.obj=JSONObject.fromObject(result);29.//今日温度对应当key是temperature30.result=obj.getString("temperature");31.return result;32.}33.}34.return result;35.}36.public static void main(String[] args) {37.System.out.println(GetTodayTemperatureByCity("苏州"));38.}39.}Demo4:调用天气种类及表示列表接口示例1.package juheAPI;2.3.import net.sf.json.JSONArray;4.import net.sf.json.JSONObject;5.6.7.8.public class GetWeatherSignAndTypeList {9.//接口地址,因为只需要传入一个固定的key为参数,所以设为常量10.private static final String URL= "/weather/uni?key=***a7558b2e0bedaa19673f74a6809ce";11.12.public static String excute(){13.return PureNetUtil.get(URL);//调用工具类获取接口数据14.}15.16.public static String getWeatherByWid(String wid) {17.String result=excute();//获取接口数据18.if(result!=null){19.JSONObject obj=JSONObject.fromObject(result);20.result=obj.getString("resultcode");21.22.if(result!=null&&result.equals("200")){23.24.result=obj.getString("result");25.JSONArray arr=JSONArray.fromObject(result);26.for(Object o:arr){//遍历数组27.obj=JSONObject.fromObject(o.toString());28.//如果遍历到需要的数据后直接返回结果,根据key(wid)得到value判断是否等于传入参数29.if(obj.getString("wid").equals(wid)){30.result=obj.getString("weather");31.return result;32.}33.}34.}35.}36.return result;37.}38.public static void main(String[] args) {39.System.out.println(getWeatherByWid("10"));40.}41.}step5:调用接口时候如果状态码不是200,仔细参考文档说明,也就是返回step3:看文档!。
天气预报代码
qq.htm代码如下:引用:<html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>迷你天气预报</title><style>body{margin:0;padding:0;background:#fff;font-size:12px;}form{margin:0;padding:0;}img{border:0;}*{overflow:hidden;line-height:150%:}a{color:#666666;text-decoration:none;}a:visited{color:#666666}a:hover{color:#666666;text-decoration:underline;}#Head_Area {BACKGROUND: url() 10% top; MARGIN-BOTTOM: 0px; OVERFLOW: hidden; WIDTH: 230px;HEIGHT: 15px}#Head_Area #Wealth {FLOAT: left; WIDTH: 230px; LINE-HEIGHT: 15px; PADDING-TOP: 0px;}#Head_Area #Wealth A {COLOR: #666666}</style><!--[if ie 7]><style>.cl{height:0;}</style><![endif]--><script type="text/javascript" src="../js/j.minisite.weather.js"></script></head><body onLoad="document.execCommand('BackgroundImageCache',false,true);"> <div id="Head_Area"><div id="Wealth"></div><script type="text/javascript">/*<![CDATA[*/MiniSite.Weather.print("Wealth");/*]]>*/</script></div></body></html>j.minisite.weather.js如下:引用:/** created by WangSo at 2008-4-9*/var MiniSite = new Object();MiniSite.Browser = {ie: /msie/.test(erAgent.toLowerCase()),moz: /gecko/.test(erAgent.toLowerCase()),opera: /opera/.test(erAgent.toLowerCase())};MiniSite.$ = function(s){return (typeof s == 'object') ? s: document.getElementById(s);};MiniSite.JsLoader = {load: function(sUrl, fCallback){var _script = document.createElement('script');_script.setAttribute('type', 'text/javascript');_script.setAttribute('src', sUrl);document.getElementsByTagName('head')[0].appendChild(_script);if (MiniSite.Browser.ie){_script.onreadystatechange = function(){if (this.readyState=='loaded' || this.readyState=='complete'){fCallback();}};}else if (MiniSite.Browser.moz){_script.onload = function(){fCallback();};}else{fCallback();}}};MiniSite.Cookie = {set: function(name, value, expires, path, domain){if (typeof expires == "undefined"){expires = new Date(new Date().getTime() + 365*24*3600*100);}document.cookie = name + "=" + escape(value) +((expires) ? "; expires=" + expires.toGMTString() : "") +((path) ? "; path=" + path : "; path=/") +((domain) ? "; domain=" + domain : "");},get: function(name){var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));if (arr != null){return unescape(arr[2]);}return null;},clear: function(name, path, domain){if (this.get(name)){document.cookie = name + "=" +((path) ? "; path=" + path : "; path=/") +((domain) ? "; domain=" + domain : "") +";expires=Fri, 02-Jan-1970 00:00:00 GMT";}}};MiniSite.Weather = {defaultCity: 125,city: {"北京市": {"_": 125,"北京市": 125},"上海市": {"_": 252,"上海市": 252},"天津市": {"_": 127,"天津市": 127,"塘沽区": 132},"重庆市" : {"_": 212,"奉节区": 201,"重庆市": 212,"涪陵区": 213},"香港": {"_": 1,"香港": 1},"澳门": {"_": 2,"澳门": 2},"台湾省": {"_": 280,"台北市": 280},"云南省": {"_": 179,"昭通市": 173,"丽江市": 174,"曲靖市": 175,"保山市": 176,"大理州": 177,"楚雄州": 178,"昆明市": 179,"瑞丽市": 180,"玉溪市": 181,"临沧市": 182,"思茅市": 184,"红河州": 185,"文山州": 369,"西双版纳州": 370,"怒江州": 372,"迪庆州": 373},"内蒙古": {"_": 69,"呼伦贝尔市": 4,"兴安盟": 7,"锡林郭勒盟": 16,"巴彦淖尔市": 63,"包头市": 64,"呼和浩特市": 69,"锡林浩特市": 99,"通辽市": 101,"赤峰市": 106,"乌海市": 382,"鄂尔多斯市": 383,"乌兰察布市": 384 },"吉林省": {"_": 103,"辽源市": 34,"通化市": 36,"白城市": 37,"松原市": 96,"长春市": 103,"吉林市": 104,"桦甸市": 109,"延边州": 110,"集安市": 118,"白山市": 119,"四平市": 385},"四川省": {"_": 166,"甘孜州": 162,"阿坝州": 163,"成都市": 166,"雅安市": 168,"峨眉山市": 170,"乐山市": 171,"宜宾市": 172,"巴中市": 199,"达州市": 200,"遂宁市": 204,"南充市": 205,"泸州市": 216,"自贡市": 359,"攀枝花市": 360,"德阳市": 361,"广元市": 362,"内江市": 363,"广安市": 364,"眉山市": 365,"资阳市": 366,"凉山州": 367 },"宁夏": {"_": 78,"石嘴山市": 54,"银川市": 78,"吴忠市": 83,"固原市": 209 },"安徽省": {"_": 248,"淮南市": 75,"马鞍山市": 76,"淮北市": 77,"铜陵市": 92,"滁州市": 95,"巢湖市": 100,"池州市": 102,"宣城市": 105,"亳州市": 238,"阜阳市": 241,"六安市": 242,"蚌埠市": 243,"合肥市": 248,"芜湖市": 249,"安庆市": 253,"黄山市": 254 },"山东省": {"_": 140,"德州市": 134,"滨州市": 135,"烟台市": 136,"聊城市": 139,"济南市": 140,"泰安市": 141,"淄博市": 142,"潍坊市": 143,"青岛市": 144,"济宁市": 146,"日照市": 147,"泰山市": 156,"枣庄市": 159,"东营市": 160,"威海市": 164,"莱芜市": 165,"临沂市": 183,"菏泽市": 206 },"山西省": {"_": 84,"长治市": 9,"晋中市": 22,"朔州市": 70,"大同市": 72,"吕梁市": 80,"忻州市": 81,"阳泉市": 85,"临汾市": 88,"运城市": 93,"晋城市": 94,"五台山市": 381 },"广东省": {"_": 292,"南雄市": 235,"韶关市": 283,"清远市": 284,"梅州市": 285,"肇庆市": 291,"广州市": 292,"河源市": 293,"****市": 294,"深圳市": 296,"汕尾市": 297,"湛江市": 300,"阳江市": 301,"茂名市": 302,"佛冈市": 322,"梅县市": 323,"电白市": 324,"高要市": 325,"珠海市": 330,"佛山市": 331,"江门市": 332,"东莞市": 334,"中山市": 335,"潮州市": 336,"揭阳市": 337,"云浮市": 338 },"广西": {"_": 295,"桂林市": 232,"柳州市": 282,"百色市": 288,"贵港市": 289,"梧州市": 290,"南宁市": 295,"钦州市": 298,"北海市": 299,"防城港市": 339,"玉林市": 340,"贺州市": 341,"来宾市": 342,"崇左市": 343},"新疆": {"_": 28,"昌吉州": 19,"克孜勒苏柯尔克孜自治州": 20,"伊犁州": 21,"阿拉尔市": 23,"克拉玛依市": 24,"博尔塔拉州": 27,"乌鲁木齐市": 28,"吐鲁番市": 31,"阿克苏市": 32,"石河子市": 33,"喀什市": 35,"和田市": 39,"哈密市": 41,"奇台市": 52},"江苏省": {"_": 244,"无锡市": 43,"苏州市": 44,"盱眙市": 45,"赣榆市": 46,"东台市": 47,"镇江市": 59,"泰州市": 61,"宿迁市": 62,"徐州市": 236,"连云港市": 237,"淮安市": 240,"南京市": 244,"扬州市": 245,"盐城市": 246,"南通市": 247,"常州市": 250 },"江西省": {"_": 264,"庐山市": 111,"玉山市": 137,"贵溪市": 138,"广昌市": 145,"萍乡市": 153,"新余市": 154,"宜春市": 224,"赣州市": 234,"九江市": 258,"景德镇市": 259,"南昌市": 264,"鹰潭市": 265,"上饶市": 267,"抚州市": 273 },"河北省": {"_": 82,"邯郸市": 3,"衡水市": 8,"石家庄市": 82,"邢台市": 86,"张家口市": 120,"承德市": 121,"廊坊市": 126,"唐山市": 128,"保定市": 130,"沧州市": 131 },"河南省": {"_": 189,"安阳市": 89,"三门峡市": 188,"郑州市": 189,"南阳市": 192,"周口市": 193,"驻马店市": 197,"信阳市": 198,"开封市": 207,"洛阳市": 228,"平顶山市": 231,"焦作市": 251,"鹤壁市": 260,"新乡市": 304,"濮阳市": 305,"许昌市": 306,"漯河市": 307,"商丘市": 308,"济源市": 309 },"浙江省": {"_": 255,"湖州市": 65,"嵊州市": 66,"平湖市": 67,"石浦市": 68,"宁海市": 71,"洞头市": 73,"舟山市": 74,"杭州市": 255,"嘉兴市": 256,"金华市": 261,"绍兴市": 262,"宁波市": 263,"衢州市": 266,"丽水市": 268,"台州市": 269,"温州市": 272},"海南省": {"_": 303,"海口市": 303,"三亚市": 344,"屯昌市": 345,"琼海市": 346,"儋州市": 347,"文昌市": 348,"万宁市": 349,"东方市": 350,"澄迈市": 351,"定安市": 352,"临高市": 353,"白沙黎族自治县": 354,"乐东黎族自治县": 355,"陵水黎族自治县": 356,"保亭黎族苗族自治县": 357,"琼中黎族苗族自治县": 358 },"湖北省": {"_": 211,"襄樊市": 196,"荆门市": 202,"黄冈市": 203,"恩施州": 208,"武汉市": 211,"黄石市": 310,"鄂州市": 314,"孝感市": 315,"随州市": 317,"仙桃市": 318,"天门市": 319,"潜江市": 320,"神农架市": 321 },"湖南省": {"_": 218,"张家界市": 214,"岳阳市": 215,"怀化市": 217,"长沙市": 218,"邵阳市": 222,"益阳市": 223,"郴州市": 233,"桑植市": 311,"沅陵市": 312,"南岳市": 313,"株洲市": 326,"湘潭市": 327,"衡阳市": 328,"娄底市": 329,"常德市": 387 },"甘肃省": {"_": 57,"张掖市": 49,"金昌市": 50,"武威市": 51,"兰州市": 57,"白银市": 58,"定西市": 60,"平凉市": 90,"庆阳市": 91,"甘南市": 225,"临夏市": 229,"天水市": 377,"酒泉市": 379,"陇南市": 380},"福建省": {"_": 276,"莆田市": 107,"浦城市": 271,"南平市": 274,"宁德市": 275,"福州市": 276,"龙岩市": 277,"三明市": 278,"泉州市": 279,"漳州市": 286,"厦门市": 287},"**": {"_": 150,"那曲地区": 148,"日喀则地区": 149,"**市": 150,"山南地区": 151,"阿里地区": 152,"昌都地区": 161,"林芝地区": 169 },"贵州省": {"_": 227,"毕节市": 219,"遵义市": 220,"铜仁市": 221,"安顺市": 226,"贵阳市": 227,"黔西南州": 230,"六盘水市": 368 },"辽宁省": {"_": 115,"葫芦岛市": 25,"盘锦市": 26,"辽阳市": 29,"铁岭市": 30,"阜新市": 108,"朝阳市": 112,"锦州市": 113,"鞍山市": 114,"沈阳市": 115,"本溪市": 116,"抚顺市": 117,"营口市": 123,"丹东市": 124,"瓦房店市": 129,"大连市": 133 },"陕西省": {"_": 186,"榆林市": 79,"延安市": 87,"西安市": 186,"渭南市": 187,"汉中市": 190,"商洛市": 191,"安康市": 194,"铜川市": 374,"宝鸡市": 375,"咸阳市": 376 },"青海": {"_": 56,"海北州": 48,"海南州": 55,"西宁市": 56,"玉树州": 155,"黄南州": 157,"果洛州": 158,"海西州": 195,"海东市": 210},"黑龙江省": {"_": 17,"大兴安岭地区": 5,"黑河市": 6,"齐齐哈尔市": 10,"绥化市": 11,"鹤岗市": 12,"佳木斯市": 13,"伊春市": 14,"双鸭山市": 15,"哈尔滨市": 17,"鸡西市": 18,"漠河市": 38,"大庆市": 40,"七台河市": 42,"牡丹江市": 97,"绥芬河市": 98}},_print: function(province, city, conainter){if (typeof this.city[province] != "undefined"){if (typeof this.city[province][city] != "undefined"){var _city_ = this.city[province][city];}else if (typeof this.city[province]["_"] != "undefined"){var _city_ = this.city[province]["_"];}else{var _city_ = this.defaultCity;}}else{var _city_ = this.defaultCity;}MiniSite.JsLoader.load("/inc/minisite_"+_city_+".js", function(){try{MiniSite.$(conainter).innerHTML = "<a href='#'onclick=\"window.open('/inc/07_dc"+ _city_ + ".htm','','width=630,height=380,resizable=0')\"target='_blank'>"+ __minisite__weather__ + "</a>";}catch (e){}});},print: function(conainter){var ok = function(){var province = null;var city = null;var ipAddress = MiniSite.Cookie.get("QQ_IPAddress");if (ipAddress != null){try{var ipAddressArr = ipAddress.split(",");province = ipAddressArr[0];city =ipAddressArr[1];}catch (e){}}MiniSite.Weather._print(province, city, conainter);};if (!MiniSite.Cookie.get("QQ_IPAddress")){MiniSite.JsLoader.load(":80/ipaddress", function(){if (typeof IPData != "undefined"){MiniSite.Cookie.set('QQ_IPAddress', IPData[2]+','+IPData[3]);ok();}});}else{ok();}}};。
天气预报代码(WeatherDemo.java)
同学的天气预报代码,供参考!package com.example.baidumap;import java.io.BufferedInputStream;import java.io.IOException;import java.io.InputStream;import .URL;import .URLConnection;import org.apache.http.HttpResponse;import org.apache.http.HttpStatus;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.util.EntityUtils;import org.json.JSONException;import org.json.JSONObject;import android.content.Context;import android.content.res.Resources;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.util.Log;publicclass WeatherDemo{privatestatic Resources resources;private JSONObject cityAndcode;private String weatherPicUrl1;privateboolean update=false;WeatherDemo(Context context){Log.i("Weather","create");System.out.println("create");cityAndcode = new JSONObject();resources = context.getResources();try {cityAndcode = loadLocalJson();} catch (JSONException e) {e.printStackTrace();}}public String getWeather(String city){String result="";try {Log.i("weather","cityAndcode.getString(city)"+cityAndcode.getString(city));String jsonUrl=new String("/data/"+cityAndcode.get(city)+".html");String strResult =getJson(jsonUrl);Log.i("weather",strResult);String message = getInfo(strResult);result = message;update =true;} catch (JSONException e) {result = "璇锋寜鏍煎紡杈撳叆鍩庡競鍚嶇О锛氬 锛堟俯宸烇級";update=false;}return result;}publicboolean weUpdate(){return update;}public JSONObjectloadLocalJson() throws JSONException{cityAndcode=new JSONObject();InputStreaminputStream = null;try {inputStream = resources.openRawResource(R.raw.cityandcode);byte[] reader = newbyte[inputStream.available()];while (inputStream.read(reader) != -1) {String[] cAc = new String(reader,"gb2312").split("\r\n");for(int i=0;i<cAc.length;i++){ String [] sub_cAc = cAc[i].split(":");sub_cAc[1] = sub_cAc[1].substring(0, sub_cAc[1].length()-1);cityAndcode.put(sub_cAc[0],sub_cAc[1]);Log.i("city","cityname:"+sub_cAc[0]+",citycode:"+cityAndcode.getString(sub _cAc[0]));}}} catch (IOException e) {Log.i("city", e.getMessage(), e);}return cityAndcode;}public StringgetJson(String jsonUrl){HttpGethttpRequest = new HttpGet(jsonUrl);String strResult = "";try {HttpClienthttpClient = new DefaultHttpClient();HttpResponsehttpResponse = httpClient.execute(httpRequest);if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { strResult = EntityUtils.toString(httpResponse.getEntity());}} catch (ClientProtocolException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}Log.i("H", strResult);return strResult;}public StringgetInfo(String strResult){StringBuildersb = new StringBuilder();String str=null;try {JSONObjectjsonObj = new JSONObject(strResult).getJSONObject("weatherinfo");str = jsonObj.getString("city");sb.append("鍩庡競:"+str+'\n');str= jsonObj.getString("date_y");sb.append("鏃ユ湡:"+str+"\n");str=jsonObj.getString("weather1");sb.append("澶╂皵:"+str+"\n");// str= jsonObj.getString("week");// sb.append("鏄熸湡锛�+str+"\n");str = jsonObj.getString("temp1");sb.append("浠婃棩娓╁害:"+str+"\n");// str=jsonObj.getString("tempF1");// sb.append("鍗庢皬娓╁害:"+str+"\n");// str=jsonObj.getString("temp2");// sb.append("鏄庢棩娓╁害:"+str+"\n");str=jsonObj.getString("wind1");sb.append("椋庡姏:"+str+"\n");// str=jsonObj.getString("index");// sb.append("浠婃棩寤鸿 :"+str+"\n");sb.append("浠婃棩寤鸿 :");str=jsonObj.getString("index_d");String[] strs=str.split("");int length=0;for(int i=0;i<strs.length;i++){ length = strs[i].length()+length;if(length>10){sb.append("\n");length=0;}else{sb.append(strs[i]);}}// str=jsonObj.getString("index48");// sb.append("48灏忔椂寤鸿 :"+str+"\t");// str=jsonObj.getString("index48_d");// s b.append(str+"\n");// str=jsonObj.getString("index_xc");// sb.append("娲楄溅鎸囨暟:"+str+"\n");str=jsonObj.getString("index_tr");sb.append("鏃呮父鎸囨暟:"+str+"\n");str=jsonObj.getString("index_co");sb.append("鏁f 鎸囨暟:"+str+"\n");weatherPicUrl1 =jsonObj.getString("img1");// sb.append("鍥剧墖鍦板潃:"+weatherPicUrl1+"\n");setWeatherPicUrl(weatherPicUrl1);} catch (JSONException e) {Log.i("Erorr","Json parse error");e.printStackTrace();}return sb.toString();}privatevoid setWeatherPicUrl(String url){this.weatherPicUrl1=url;}public Bitmap getBimap(){Bitmap bm=null;try{URL iconurl =new URL("/img/b"+weatherPicUrl1+".gif");URLConnection conn = iconurl.openConnection();conn.connect();InputStream is =conn.getInputStream();BufferedInputStreambis = new BufferedInputStream(is, 8192); bm = BitmapFactory.decodeStream(bis);bis.close();is.close();}catch(Exception e){Log.i("img","getBimap error");}return bm;}}。
天气预报3_java+xml
//MyService.java后台读数据库的服务packagecom.liuproject.reminder;importjava.io.InputStream;importorg.apache.http.util.EncodingUtils; importandroid.app.Service;importandroid.content.ContentValues;importandroid.content.Context;importandroid.content.Intent;importandroid.content.SharedPreferences; importandroid.database.Cursor;importandroid.database.sqlite.SQLiteDatabase; importandroid.database.sqlite.SQLiteOpenHelper; importandroid.database.sqlite.SQLiteDatabase.CursorFactory; importandroid.os.IBinder;importandroid.util.Log;public class MyService extends Service{//继承Service private final String DB_NAME="CityID";//数据库名称private final String NAME="City";private final int VERSION=1;private SQLiteDatabasecdb;//数据库工具private CityDBcdbhelper;//数据库@OverridepublicIBinderonBind(Intent arg0) {return null;}@Overridepublic void onCreate() {super.onCreate();cdbhelper=new CityDB(this, NAME, null, VERSION);}@Overridepublic void onStart(Intent intent, intstartId) {super.onStart(intent, startId);write(getFromAssets("CityId.txt")); //写入数据库}public void write(String str){//写入数据库cdb=cdbhelper.getWritableDatabase();//打开数据库//提交数据ContentValues values=new ContentValues();//取出关键字char c;String name="",id="";int type=1,n=0;//type标记是否为省市自治区,n记录是否读过“=”for(inti=0;i<str.length();i++){c=str.charAt(i);if(c!='='&&n==0)id+=c;if(c=='='){n=1;continue;}if(c!='\n'&&n==1&&c!='\r')name+=c;if(c=='\n'){if(id.length()<=5)type=1;//写入数据库values.put("cityid", id);values.put("cityname", name);values.put("type", type);cdb.insert(DB_NAME, null, values);Log.i("id---type", id+"("+type+")");Log.i("name--", name);values.clear();n=0;name="";id="" ;type=0;//恢复数据}}cdb.close(); //关闭数据库SharedPreferencesdataofday = getSharedPreferences("WeatherDataFile", 0);dataofday.edit().putBoolean("recod", true).commit();//写入标记数据库创建完成this.onDestroy();}public String getFromAssets(String fileName){ //从assets文件夹读取数据初始化城市id String result = "";try {InputStream in = getResources().getAssets().open(fileName);//获取文件的字节数intlenght = in.available();//创建byte数组byte[] buffer = new byte[lenght];//将文件中的数据读到byte数组中in.read(buffer);result = EncodingUtils.getString(buffer, "UTF-8");} catch (Exception e) {e.printStackTrace();}return result;}}class CityDB extends SQLiteOpenHelper{//城市Id数据库操作private final String DB_NAME="CityID";//数据库名称publicCityDB(Context context, String name, CursorFactory factory,int version) {super(context, name, factory, version);}@Overridepublic void onCreate(SQLiteDatabasedb) {String createDB= "create table "+DB_NAME+"(cityidvarchar(14) primary key , citynamevarchar(20),type int)";db.execSQL(createDB);//创建数据库}@Overridepublic void onUpgrade(SQLiteDatabasedb, intoldVersion, intnewVersion) {String dropTableSQL = "DROP TABLE IF EXISTS " + DB_NAME + " ";db.execSQL(dropTableSQL);dropTableSQL = "DROP TABLE IF EXISTS " + DB_NAME + " ";db.execSQL(dropTableSQL);onCreate(db);}public void execSQL(String sql, Object[] args) {//执行操作SQLiteDatabasedb = this.getWritableDatabase();db.execSQL(sql, args);}public Cursor query(String sql, String[] args) {//返回操作结果指针SQLiteDatabasedb = this.getWritableDatabase();Cursor cursor = db.rawQuery(sql, args);return cursor;}}//CitySet.java 天气预报用于设置城市地区packagecom.liuproject.reminder;importjava.util.ArrayList;importjava.util.List;importcom.liuproject.reminder.Weather.LifeAdapter;importandroid.app.Activity;importandroid.app.ExpandableListActivity; importandroid.content.Context;importandroid.content.Intent;importandroid.content.SharedPreferences; importandroid.database.Cursor;importandroid.database.sqlite.SQLiteDatabase; importandroid.graphics.Color;importandroid.os.Bundle;importandroid.util.Log;importandroid.view.Gravity;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.view.ViewGroup;importandroid.widget.AbsListView;importandroid.widget.ArrayAdapter;importandroid.widget.BaseExpandableListAdapter; importandroid.widget.Button;importandroid.widget.EditText;importandroid.widget.ExpandableListView; importandroid.widget.ExpandableListView.OnChildClickListener; importandroid.widget.TextView;importandroid.widget.Toast;//设置天气城市public class CitySet extends Activity {private final String DB_NAME="CityID";//数据库名称private final String NAME="City";private final int VERSION=1;private SQLiteDatabasecdb;//数据库工具private CityDBcdbhelper;//数据库private Cursor cursor=null;private EditTextgetname;//用户输入private Button back;privateTextViewinfor;privateExpandableListViewcitylist;//省市自治区名称,idprivate List<String>cityid=new ArrayList<String>();private List<String>groupn=new ArrayList<String>();private List<String>childnt;private List<List<String>>childn;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_cityset);cdbhelper= new CityDB(this, NAME, null, VERSION);getname=(EditText)findViewById(R.id.get_cityname);back=(Button)findViewById(R.id.get_setcity);infor=(TextView)findViewById(r);citylist=(ExpandableListView )findViewById(R.id.citylist);LoadData();back.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View arg0) {if(getname.getText().toString().equals(""))Toast.makeText(CitySet.this,"请输入城市名称!",Toast.LENGTH_SHORT).show();else{cdb = cdbhelper.getReadableDatabase();cursor =cdb.query(DB_NAME,new String[]{"cityid"},"cityname=?" ,new String[]{ ""+getname.getText().toString()},null, null, "cityid");if(cursor.getCount()<=0)Toast.makeText(CitySet.this,"抱歉,无法获取该地区天气数据!",Toast.LENGTH_SHORT).show();else{cursor.moveToFirst();SharedPreferencesdataofday = getSharedPreferences("WeatherDataFile", 0);dataofday.edit().putString("cityid", cursor.getString(0)).commit();//写入标记数据库创建完成CitySet.this.finish();}cdb.close();}}});citylist.setOnChildClickListener(new OnChildClickListener(){@OverridepublicbooleanonChildClick(ExpandableListView parent, View v,intgroupPosition, intchildPosition, long id) {//返回被选中的城市idint sum=childPosition;for(inti=0;i<groupPosition;i++){sum+=childn.get(i).size();}Log.i("click-","-----点击"+childn.get(groupPosition).get(childPosition)+" id-- "+cityid.get(sum));SharedPreferencesdataofday = getSharedPreferences("WeatherDataFile", 0);dataofday.edit().putString("cityid", cityid.get(sum)).commit();//写入标记数据库创建完成CitySet.this.finish();return false;}}) ;}//citylist;voidLoadData(){intgnum=1;//区分组别childn=new ArrayList<List<String>>();childnt=new ArrayList<String>();cdb = cdbhelper.getReadableDatabase();cursor =cdb.query(DB_NAME,new String[]{"cityid","cityname","type"},null,null,null, null, "cityid");cursor.moveToFirst();if(cursor.getCount()<=0){Toast.makeText(this, "数据出错!", Toast.LENGTH_SHORT).show();}elsewhile(!cursor.isAfterLast()){//省市特别行政区if(cursor.getString(2).equals("1"))groupn.add(cursor.getString(1));//城市地区if(cursor.getString(2).equals("0")) {cityid.add(cursor.getString(0));//保存IDif(groupn.size()>gnum){childn.add(childnt);//添加到子目录中//childnt.clear();gnum++;childnt=new ArrayList<String>();childnt.add(cursor.getString(1));}elsechildnt.add(cursor.getString(1));}cursor.moveToNext();}cdb.close();childn.add(childnt);//添加到子目录中citylist.setAdapter(new ContactsInfoAdapter(this,groupn,childn));}}class ContactsInfoAdapter extends BaseExpandableListAdapter{ //自定义BaseExpandableListAdapterList<String> group; //组列表List<List<String>> child; //子列表Context parent;//ContactsInfoAdapter(Context p,List<String>g,List<List<String>> c){group=g;child=c;parent=p;}@Overridepublic Object getChild(intgroupPosition, intchildPosition) {returnchild.get(groupPosition).get(childPosition);}@Overridepublic long getChildId(intgroupPosition, intchildPosition) {returnchildPosition;}@OverridepublicintgetChildrenCount(intgroupPosition) {returnchild.get(groupPosition).size();}@Overridepublic View getChildView(intgroupPosition, intchildPosition,booleanisLastChild, View convertView, ViewGroup parent) {String string = child.get(groupPosition).get(childPosition); returngetGenericView(string);}@Overridepublic Object getGroup(intgroupPosition) {returngroup.get(groupPosition);}@Overridepublic long getGroupId(intgroupPosition) { returngroupPosition;}@OverridepublicintgetGroupCount() {returngroup.size();}@Overridepublic View getGroupView(intgroupPosition, booleanisExpanded,View convertView, ViewGroup parent) {String string = group.get(groupPosition); returngetGenericView(string);}//创建组/子视图publicTextViewgetGenericView(String s) {// Layout parameters for the ExpandableListView youtParamslp = new youtParams( youtParams.FILL_PARENT, 40);TextView text = new TextView(parent);text.setLayoutParams(lp);text.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT);text.setPadding(50, 0, 0, 0);text.setTextColor(Color.BLACK);text.setText(s);return text;}@OverridepublicbooleanhasStableIds() {// TODO Auto-generated method stubreturn false;}@OverridepublicbooleanisChildSelectable(intgroupPosition, intchildPosition) { // TODO Auto-generated method stubreturn true;}}还有就是activity_cityset.xml布局文件<?xml version="1.0" encoding="utf-8"?><RelativeLayoutxmlns:android="/apk/res/android" android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"android:background="@drawable/userback"><EditTextandroid:id="@+id/get_cityname"android:layout_width="240dp"android:layout_height="37dp"android:hint="请输入预报城市或地区:"android:background="@drawable/editbox"/><Button android:id="@+id/get_setcity"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_toRightOf="@id/get_cityname"android:background="@drawable/button_type2"/><TextViewandroid:id="@+id/infor"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_below="@id/get_cityname"android:textSize="16dp"android:textColor="#000"android:background="#44FFA500"android:text="请选择预报城市或地区:"/><ExpandableListViewandroid:id="@+id/citylist"android:layout_below="@id/infor"android:layout_width="fill_parent"android:layout_height="wrap_content"android:scrollbars="vertical"android:scrollingCache="false"android:drawSelectorOnTop="false"></ExpandableListView></RelativeLayout>通过上面的xml布局文件加上前面的两个java文件就基本可实现效果了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
//解析服务器响应的SOAP消息。
return parseProvinceOrCity(detail);
}
} catch (Exception e)
{
e.printStackTrace();
}
return null;
}
private static List<String> parseProvinceOrCity(SoapObject detail)
}
} catch (Exception e)
{
e.printStackTrace();
}
return null;
}
/**
*根据省份获取城市列表
*
* @param province
* @return
*/
public static List<String> getCityListByProvince(String province)
{
ArrayList<String> result = new ArrayList<String>();
for (int i = 0; i < detail.getPropertyCount(); i++)
{
String str = detail.getProperty(i).toString();
//解析出每个省份
result.add(str.split(",")[0]);
}
return result;
}
public static SoapObject getWeatherByCity(String cityName)
{
//根据城市或地区名称查询获得未来三天内天气情况、现在的天气实况、天气和生活指数
/**
*获得州,国内外省份和城市信息
*
* @return
*/
public static List<String> getProvinceList()
{
//需要调用的方法名(获得本天气预报Web Services支持的洲、国内外省份和城市信息)
String methodName = "getRegionProvince";
SoapObject result = (SoapObject) envelope.bodyIn;
SoapObject detail = (SoapObject) result.getProperty(methodName
+ "Result");
//解析服务器响应的SOAP消息。
return detail;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
public class WebServiceUtil
{
//定义Web Service的命名空间
}
} catch (Exception e)
{
e.printStackTrace();
}
return nulபைடு நூலகம்;
}
}
httpTranstation.debug = true;
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
SoapObject soapObject = new SoapObject(SERVICE_NS, methodName);
soapObject.addProperty("theRegionCode", province);
envelope.bodyOut = soapObject;
envelope.dotNet = true;
try
{
//调用Web Service
httpTranstation.call(SERVICE_NS + methodName, envelope);
{
//需要调用的方法名(获得本天气预报Web Services支持的城市信息,根据省份查询城市集合:带参数)
String methodName = "getSupportCityString";
HttpTransportSE httpTranstation = new HttpTransportSE(SERVICE_URL);
package com.kang.weatherwebservice;
import java.util.ArrayList;
import java.util.List;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
static final String SERVICE_NS = "/";
//定义Web Service提供服务的URL
static final String SERVICE_URL = "/WebServices/WeatherWS.asmx";
SoapEnvelope.VER11);
//实例化SoapObject对象
SoapObject soapObject = new SoapObject(SERVICE_NS, methodName);
envelope.bodyOut = soapObject;
//设置与.Net提供的Web Service保持较好的兼容性
SoapEnvelope.VER11);
SoapObject soapObject = new SoapObject(SERVICE_NS, methodName);
soapObject.addProperty("theCityCode", cityName);
envelope.bodyOut = soapObject;
if (envelope.getResponse() != null)
{
//获取服务器响应返回的SOAP消息
SoapObject result = (SoapObject) envelope.bodyIn;
SoapObject detail = (SoapObject) result.getProperty(methodName
//创建HttpTransportSE传输对象
HttpTransportSE httpTranstation = new HttpTransportSE(SERVICE_URL);
httpTranstation.debug = true;
//使用SOAP1.1协议创建Envelop对象
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapObject result = (SoapObject) envelope.bodyIn;
SoapObject detail = (SoapObject) result.getProperty(methodName
+ "Result");
//解析服务器响应的SOAP消息。
return parseProvinceOrCity(detail);
String methodName = "getWeather";
HttpTransportSE httpTranstation = new HttpTransportSE(SERVICE_URL);
httpTranstation.debug = true;
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
envelope.dotNet = true;
try
{
//调用Web Service
httpTranstation.call(SERVICE_NS + methodName, envelope);
if (envelope.getResponse() != null)
{
//获取服务器响应返回的SOAP消息
envelope.dotNet = true;
try
{
//调用Web Service
httpTranstation.call(SERVICE_NS + methodName, envelope);
if (envelope.getResponse() != null)
{
//获取服务器响应返回的SOAP消息