Java Hour 21 Weather
有句名言,叫做10000小时成为某一个领域的专家。姑且不辩论这句话是否正确,让我们到达10000小时的时候再回头来看吧。
本文作者Java 现经验约为21 Hour,请各位不吝赐教。
继续心情不佳,那就来获得一个天气的程序吧。
目标
因本人目前在杭州,就先显示一个杭州的天气情况吧。
项目类型就暂定为控制台程序吧,以后再改造。
就用那个众所周知的天气接口吧:
http://m.weather.com.cn/data/101210101.html
过程
随手搜索下java http 就出来了我们想要的例子。
https://hc.apache.org/httpclient-3.x/preference-api.html
api 的用法纠结了半天,java jar包版本实在是个大坑呢。好在最后发现一般在哪里下jar 包,哪里就会有api 的说明,这个就是开源的利弊了吧。
然后是耳熟能详的乱码问题了。
代码
package hello; import java.io.IOException; import java.io.InputStream; import java.util.Scanner; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; 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; public class Weather { private static final String CONTENT_CHARSET = "utf-8"; public static void main(String[] args) throws ClientProtocolException, IOException { // http://m.weather.com.cn/data/101210101.html HttpClient httpclient = new DefaultHttpClient(); httpclient.getParams().setParameter("http.protocol.content-charset", CONTENT_CHARSET); HttpGet httpgets = new HttpGet("http://m.weather.com.cn/data/101210101.html"); HttpResponse response = httpclient.execute(httpgets); HttpEntity entity = response.getEntity(); if (entity != null) { InputStream instreams = entity.getContent(); String str = convertStreamToString(instreams); System.out.println(str); httpgets.abort(); } } public static String convertStreamToString(InputStream is) { StringBuilder sb = new StringBuilder(); Scanner in = new Scanner(is, "UTF-8"); while (in.hasNextLine()) { sb.append(in.nextLine()); } in.close(); return sb.toString(); } }
问题
1 Stream 转 string 的 N种方式的优缺点
2 Stream 转 string 某些方式容易出现乱码
3 可以参照这里
http://unmi.cc/java-convert-inputstream-to-string
4 Steam 操作的一些基本类库的了解
Java Hour 21 Weather的更多相关文章
- Java hour 52 Weather
采用jetty 后,默认的welcome-file-list 配置失效了,直接跳转到了struts2 的control 中去了. <welcome-file-list> <welco ...
- Java Hour 38 Weather ( 11 ) – fastjson
有句名言,叫做10000小时成为某一个领域的专家.姑且不辩论这句话是否正确,让我们到达10000小时的时候再回头来看吧. Hour 38 Java 中的 json 反序列化 其实就是所谓的json 转 ...
- Java Hour 43 Weather ( 12 ) - 杭州 Show
终于从fastjson 的阴影中走出来了,接下去就是显示一个完整的天气信息了. 43.1 Weather Show 首先增加Model 中的属性. public class Weatherinfo { ...
- Java Hour 37 Weather ( 10 )
有句名言,叫做10000小时成为某一个领域的专家.姑且不辩论这句话是否正确,让我们到达10000小时的时候再回头来看吧. Hour 36 Weather 从失败的地方爬起来 在jsp 中,使用EL 表 ...
- Java Hour 35 Weather ( 8 ) struts2 – message resource
有句名言,叫做10000小时成为某一个领域的专家.姑且不辩论这句话是否正确,让我们到达10000小时的时候再回头来看吧. Hour 35 刚发表了一条闪存,在这个公司快满3个月了,该正式决定留下来还是 ...
- Java Hour 33 Weather ( 6 )
有句名言,叫做10000小时成为某一个领域的专家.姑且不辩论这句话是否正确,让我们到达10000小时的时候再回头来看吧. Hour 33 CURD 之 Create 首先是Eclipse 排序的功能找 ...
- Java Hour 32 Weather ( 5 ) struts2 – Action class
有句名言,叫做10000小时成为某一个领域的专家.姑且不辩论这句话是否正确,让我们到达10000小时的时候再回头来看吧. Hour 32 Struts2 Action 1 将action 映射到 ac ...
- Java Hour 30 Weather ( 3 )
有句名言,叫做10000小时成为某一个领域的专家.姑且不辩论这句话是否正确,让我们到达10000小时的时候再回头来看吧. Hour 30 上回终点 Model 这里有一些java bean 的 风格约 ...
- Java Hour 29 Weather ( 2 ) Maven
有句名言,叫做10000小时成为某一个领域的专家.姑且不辩论这句话是否正确,让我们到达10000小时的时候再回头来看吧. Hour 29 Weather 界面 数据源采用上次取得的杭州天气的json. ...
随机推荐
- --Dirring love 音乐(01背包问题)
解题思路: dp[i][j] 前 i 首歌放入 j 容量中的最大热情度. 前 i 首歌 放到 j 容量中 dp[i][j]= dp[i-1][j-m[i]]+r[i] (注意:如果 j 容量 &l ...
- Mac Sublime Text 2 简单使用
按 Ctrl+` 调出 console 粘贴以下代码到底部命令行并回车: import urllib2,os;pf='Package Control.sublime-package';ipp=subl ...
- UILable点击事件
UILabel *lLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 19, 105, 1)]; lLabel.backgroundColor ...
- spring mvc实现登录+异常
登录页面login.jsp在webroot下 <body> <form action="user/login" method="post"&g ...
- TCP,IP,HTTP,SOCKET区别和联系
物理层-- 数据链路层-- 传输层-- TCP协议 会话层-- 我 们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如 果没有应用层,便 ...
- 机器学习公开课笔记(4):神经网络(Neural Network)——表示
动机(Motivation) 对于非线性分类问题,如果用多元线性回归进行分类,需要构造许多高次项,导致特征特多学习参数过多,从而复杂度太高. 神经网络(Neural Network) 一个简单的神经网 ...
- php面试题之二——数据结构和算法(高级部分)
二.数据结构和算法 1.使对象可以像数组一样进行foreach循环,要求属性必须是私有.(Iterator模式的PHP5实现,写一类实现Iterator接口)(腾讯) <?php class T ...
- ios 应用程序图标、启动画面、itune图标设置
http://blog.sina.com.cn/s/blog_4cd8dd1301014hfz.html 先说说应用程序图标,一般有下面几种: Icon.png(57x57) - Homescreen ...
- mac安装软件管家homebrew
http://www.iwangzheng.com/ 1.简介 众所周知,Mac的操作系统是基于Unix的,在这个系统上大家可以安装一些专门为mac定制开发的软件.这就带来了一个问题,手工编译每个软件 ...
- Step
php+MySQL html+css JQuery Mobile JavaScript weiPHP Sina Cloud 微信公众订阅号平台开发