`
guoqingcun
  • 浏览: 56752 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

天气预报实现小方案

 
阅读更多

1、 iframe他人的劳动成果

好处:

坏处:不是所有的服务提供商都支持iframe,自己无法修改样式

: QQ天气

<iframe src="http://weather.news.qq.com/inc/ss295.htm" style="WIDTH: 212px; HEIGHT: 204px" border=0 marginWidth=0 marginHeight=0 frameBorder=no width=160 scrolling=no height=60></iframe>

中国天气网http://www.weather.com.cn

<iframesrc="http://www.weather.com.cn/static/custom/custom.html" height="193" scrolling="no" frameborder="0"></iframe>

2、 java实现方式

使用技术httpclient抓取页面方式实现,其实也挺简单,不过依懒性太强,如果他人网站做了修改,也必须做出相应修改..维护成本高

HttpClient httpClient = new HttpClient();

httpClient.getHostConfiguration().setProxy("代理主机",80); //因为我本地用的是代理

String hostUrl = "http://www.weather.com.cn/static/custom/custom.html";//抓取地址

GetMethod getMethod = new GetMethod(hostUrl);

// 使用系统提供的默认的恢复策略

getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler());

try {

// 执行getMethod

int statusCode = httpClient.executeMethod(getMethod);

if (statusCode != HttpStatus.SC_OK) {

System.err.println("Method failed: " + getMethod.getStatusLine());

}

InputStream resStream = getMethod.getResponseBodyAsStream(); //文件较大。所以建义用流方式

BufferedReader br = new BufferedReader(new InputStreamReader(resStream));

StringBuffer resBuffer = new StringBuffer();

String resTemp = "";

while((resTemp = br.readLine()) != null){

resBuffer.append(resTemp);

}

br.close();

String response = resBuffer.toString(); //抓取的远程文件已经组织成字符串

3、 ajax+java实现方式

jquery+dom4j

实现方式相对较灵活,推荐用这种方式实现。因为ajax有跨域限制问题所以用java类做了一个代理,帮助与远程服务器通信,再把返回信息交给ajax处理

Ajax.js

$.ajax({

type: "POST",

url: "dataresource.jsp?city="+$("#city").val(),

//dataType:"xml",//此处有不解,需要返回的是xml格式,写上确出现错误

success :function(result){

do something

},

error :function(msg){alert("e")}

})

dataresource.jsp //最好把这个功能写在单独的类

String city = request.getParameter("city");

URL url = null;

String urlStr =null;

if(city!=null)

urlStr = "http://www.google.com/ig/api?hl=zh_cn&weather="+city;

else

urlStr = "http://www.google.com/ig/api?hl=zh_cn&weather=beijing";

url = new URL(urlStr);

Properties prop = System.getProperties();

prop.put("http.proxyHost","代理主机");

prop.put("http.proxyPort","80");

InputStream in = url.openStream();

InputStreamReader isr =new InputStreamReader(in,"gbk");

SAXReader reader = new SAXReader();

Document doc = reader.read(isr);;

response.getWriter().write(doc.asXML());//返回的是xml格式

分享到:
评论

相关推荐

    基于android的天气预报实现

    【基于Android的天气预报实现】是一项综合性的软件开发任务,主要使用Java编程语言在Android平台上构建一个能够实时显示天气信息的应用程序。这个项目不仅涵盖了移动应用开发的基本技术,还涉及了网络请求、数据解析...

    android天气预报开发小程序以及相关资料

    1. **用户界面设计**:天气预报小程序需要展示实时和未来几天的天气信息,这通常通过使用Android的布局管理器(如LinearLayout, ConstraintLayout)来实现。我们还需要设计自定义的UI组件,比如可滑动的时间轴来展示...

    Android 天气预报实现.rar

    这个压缩包文件"Android简单天气预报实现"可能包含了实现以上功能的源代码示例,包括网络请求、JSON解析、UI设计等部分,可供学习和参考。通过研究和实践,开发者可以掌握Android天气预报应用的开发流程和技术要点。

    Android平台天气预报widget的设计与实现毕业论文

    在本篇毕业论文《Android平台天气预报widget的设计与实现》中,作者深入探讨了如何在Android平台上构建一个功能完备的天气预报小部件(widget)。本文首先介绍了Android开发的基础知识,包括系统架构、应用程序设计...

    天气预报需求说明书

    - 启动应用程序后,用户可通过窗口小部件添加“天气预报”组件到主屏幕上,以便快速查看天气信息。 - 用户可以在设置界面中配置显示天气的城市、更新频率和背景样式。 - 主显示界面上以图文形式呈现当前天气状况,并...

    javascript、jQuery调用webservice实现的天气预报

    总的来说,这个项目展示了如何使用 JavaScript 和 jQuery 这样的前端技术,结合 Web Service 提供的 API,实现动态、实时的天气预报功能。这样的技能对于现代 web 开发者来说是非常重要的,因为它们能够提升用户体验...

    Android智能手机天气预报系统设计及实现

    综上所述,本研究提出了一种基于Android智能手机的天气预报系统设计方案,通过对Activity、IntentReceiver、Service和ContentProvider等核心组件的合理利用,构建了一个能够为用户提供实时天气预报信息的应用。...

    网站实现自动接收上传天气预报功能.pdf

    ### 网站实现自动接收上传天气预报功能 #### 概述 随着互联网技术的快速发展,企业内部网站已经成为信息共享的重要平台。对于电力企业来说,内部网站不仅有助于提高工作效率,还能确保信息的实时性和准确性。本文...

    C#天气预报源码

    在本项目中,"C#天气预报源码" 提供了一种使用C#编程语言实现的解决方案,用于获取并展示全球多个城市的天气预报信息。这个源码覆盖了超过340个中国主要城市以及60个国外主要城市的三日天气预报数据。下面将详细介绍...

    天气预报案例Android

    在这个案例中,开发者可能选择了其中的一种或几种来实现从百度APIStore获取天气预报数据。网络请求通常需要处理异步操作,避免阻塞主线程,可以使用AsyncTask、Handler、RxJava或者现在更推荐的Coroutines进行异步...

    android开发课题 天气预报

    通过这个"天气预报"课题,初学者不仅能学习到Android开发的基础知识,还能了解到实际项目开发中的常见挑战和解决方案。这个项目为开发者提供了一个将理论知识应用于实践的良好平台,有助于提高他们的编程技能和问题...

    Android简单的天气预报

    在Android平台上开发一个简单的天气预报应用,涉及到许多关键的技术点,包括网络请求、JSON解析、UI设计以及数据存储。以下是对这些技术的详细说明: 1. **网络请求**:为了获取天气信息,开发者通常需要从远程...

    基于百度天气API的android天气预报源码

    本项目"基于百度天气API的android天气预报源码"提供了一个完整的解决方案,它利用了百度开放平台提供的天气API来获取实时天气信息,并将这些信息在Android应用中进行展示。 首先,我们来详细了解一下**百度天气API*...

    基于安卓Android下Java开发的手机天气预报系统含系统设计解决方案文档PDF版.zip

    《基于安卓Android下Java开发的手机天气预报系统》是一个针对移动设备的应用程序,它整合了现代技术,为用户提供实时、准确的气象信息。这个系统利用Java编程语言在Android平台上进行开发,展示了Java在移动端的强大...

    天气预报界面小部件模板是一款常用的纽约天气预报界面模板素材。.zip源码资源下载

    总的来说,这个“天气预报界面小部件模板”为开发者提供了一个起点,帮助他们快速实现一个美观且实用的天气预报展示。通过学习和利用这个模板,开发者可以节省大量的设计和编码时间,专注于提升应用的其他功能和性能...

    天气预报网站模板

    总的来说,这个天气预报网站模板提供了一套完整的解决方案,帮助开发者快速创建一个功能完善的天气查询网站,其黄绿配色和建筑元素赋予了模板独特的设计风格。通过下载并解压“FXflash46”文件,用户可以根据自己的...

    天气预报(asp.net)

    【标题】"天气预报(asp.net)"是一个基于ASP.NET技术开发的简单天气预报应用程序,旨在为初学者提供一个学习和实践的平台。这个项目利用了C#编程语言,结合ASP.NET框架,来实现动态网页展示实时天气信息的功能。 ...

    Android天气预报源码

    【Android天气预报源码】是一个面向开发者提供的项目,旨在帮助他们理解如何在Android平台上实现一个功能完善的天气预报应用。这个源码集成了美观的界面设计,为用户展示实时天气信息,包括温度、湿度、风向风力等。...

    安卓天气预报APP

    【安卓天气预报APP】是一款基于Android Studio和IntelliJ IDEA开发的小型应用程序,它整合了Java EE技术,实现了客户端与本地服务端的数据交互。这款应用的主要功能是展示实时天气信息,用户可以方便地查看所在地区...

    GPS定位天气预报

    首先,实现GPS定位天气预报,开发者通常会利用第三方SDK,例如这里的百度SDK。百度地图SDK提供了丰富的API接口,允许开发者集成到自己的应用中,获取用户的地理位置信息。用户开启GPS功能后,应用能够获取到用户当前...

Global site tag (gtag.js) - Google Analytics