java.net.*操作session/GET/POST方法

终于又考完一门试,开始做课程设计了,结果课程设计给工作室一个尾气3个月的项目,而这次的先用我写的贴吧放上去,我变得暂时空闲了,开始着手写校内开心农场小工具- 全能拖拉机。 首先要解决的就是校内登录的问题,那就是Get/Post方法了,还有用户状态保存,就是session的操作。Java不同于C#,那位可以集成系统 的浏览器或者之间创建一个Browser。 开始写了自己的第一个版本。 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.ProtocolException; import java.net.URL; import java.net.HttpURLConnection; public class FarmerHelper { /** * @param args * @throws ProtocolException */ public static void main(String[] args) throws ProtocolException { String loginUrlStr = "http://login.xiaonei.com/Login.do"; String homeUrlStr = "http://home.xiaonei.com/Home.do"; URL loginUrl = null; URL homeUrl = null; HttpURLConnection loginConn = null; HttpURLConnection homeConn = null; try { loginUrl = new URL(loginUrlStr); homeUrl = new URL(homeUrlStr); try { loginConn = (HttpURLConnection) loginUrl.openConnection(); homeConn = (HttpURLConnection) homeUrl.openConnection(); } catch (IOException e) { print("Conn't open the url connection!"); e.printStackTrace(); } } catch (MalformedURLException e) { print("Illegal URL!"); e.printStackTrace(); return; } loginConn.setRequestMethod("POST"); loginConn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.10)" + " Gecko/2009042316 Firefox/3.0.10"); loginConn.setRequestProperty("Keep-Alive", "300"); loginConn.setRequestProperty("Connection", "keep-alive"); loginConn.setRequestProperty("email", "alswlwangzi@163.com"); loginConn.setRequestProperty("password", "xh77Gffb_i"); loginConn.setRequestProperty("submit", "登录"); loginConn.setRequestProperty("Keep-Alive", "300"); try { loginConn.connect(); String headerName = null; String cookie = ""; /* * for (int i=0; (headerName = * loginConn.getHeaderFieldKey(i))!=null; i++) { if * (headerName.equals("Set-Cookie")) { cookie = * loginConn.getHeaderField(i); print(cookie); } } */ cookie = loginConn.getHeaderField("Set-Cookie"); print(cookie); homeConn.setRequestProperty("Cookie", cookie); homeConn.setRequestMethod("GET"); homeConn.connect(); BufferedReader in = new BufferedReader(new InputStreamReader( homeConn.getInputStream())); String lineStr = null; while ((lineStr = in.readLine()) != null) { // print(lineStr); print(new String(lineStr.getBytes("GBK"), "UTF-8")); } } catch (IOException e) { print("conn't connect to the server!"); e.printStackTrace(); } } private static void print(Object o) { System.out.println(o); } } 想法总是好的,现实总是残酷的,调试很久,用WireShark抓包,都是有Length Required错误,这个比较头疼,我感觉是我session传递的问题(其实不是,后来发现是Post的格式问题),于是网上找来一个Session操作类。 ...

2009-06-09 · alswl

《海绵宝宝》(SpongeBob SquarePants)

Thumbnail

主角是一块居住在海洋深处的黄色海绵(住所是一个大菠萝(即凤梨)中),他是一个可爱、慷慨大方、友好、可信赖的朋友。他露出龅牙的笑容,非常富有表现力的脸和身体, 以及他纯真美好的天性使他非常可爱。 特征:穿着方形裤子,黄颜色的海绵,露出两颗大牙齿。天真乐观,充满善意,但是尽管他出于好意,仍免不了陷入麻烦之中,闹不少笑话。 [/caption] 《海绵宝宝》虽然是低龄动画,但由于剧情幽默而充满想象力,也很适合成年人观看,回忆一下童真,而且有些内容的确好笑,看完之后也会感叹一下里面的精神。 ...

2009-06-06 · alswl

FireFox下WordPress上传频繁崩溃解决方法

今天修改了数据库option中上传的路径,终于可以使用上传了,很开心,可是又遇到在FireFox下WordPress上传导致FireFox崩溃的问题。 情况是这样,在后台点上传图片,出现上传面板的Loding界面,结果FireFox就崩溃了,查看崩溃信息,并没有什么特殊的显示。在IE下则完全没有这个问题。 Google后几篇文章说是FireFox中Firebug的问题,猛击这里打开该文章,我也算是个网页开发者,FireBug是必装的,禁止FireBug后重新尝试,依然失败。证明该文章问题和我并不一样。 我一次尝试关闭Web Developer, FlashGot, Adblock Plus,都没有效果,直到最后关闭Google Gears,才发现崩溃终于停止了。 ...

2009-06-06 · alswl

想知道校内、豆瓣、饭否为什么在同一时间维护么?

校内6-2号开始系统维护,原以为是技术问题,后来才知道豆瓣、饭否都维护,同时一大批国外网站不能登陆。 为了防止被水产。提供链接如下 中国互联网网站集体维护名单 是Google的doc链接。

2009-06-03 · alswl

用户界面设计黄金原则

在《用户界面设计要素》一书(1997)中,T.Mandel提出了3条「黄金」知道规则: 让用户驾驭软件,而不是软件驾驭用户。那种在给用户的操作加上许多约束和限制的界面虽然设计容易,却往往难学难用。 尽可能减少用户的记忆。为此可建立易记的快捷键(例如Ctrl+p启动「打印」);采用演进形式显示「提示」信息,以免要用户一次记忆大量信息。 保持界面的一致性。例如在同类产品中使用相同的设计规则;尽可能不改变用户已熟悉的操作功能键(例如用Ctrl+S保存文件);设定界面的缺省状态。 最近停下了贴吧的下一步开发,恶补软件工程,为下一步开发做理论基础。 一边啃Rober C.大人写的《敏捷软件开发》。白天都浪迹在考研自习室(很是安静啊),更新变慢,勿怪。 ...

2009-06-02 · alswl

软件自然理论

所谓软件自然理论,就是说:一个优秀的软件,他的功能模块设计,应该与用户在完全没有接触过这个系统时候所想要的功能设计一致,用户觉得他想要的功能在什么地方,应该 怎样实现,那么这个功能就是应该在那里,就是应该这样实现。 这么说感觉上会很绕口,那么举个例子。Office就是一个比较优秀的软件,如果一个用户完全没有接触过Office(当然,必须具备基本的电脑使用水平),如果该用 户想对字体进行设置,那么他就觉得字体设置属于格式,就应该在格式菜单里面,用户去点击这个菜单,就找到了自己需要的功能。 ...

2009-05-31 · alswl

Ubuntu8.04的教育网源

Google的话有很多源,北大的宣称5M,结果我都连不上,交大的宣称2M,我发现只有20kb/s,连更新语言包都超级慢。 最后经过我的测试,是成都电子科技大学的最快,2M左右,推荐使用。 特别注意,这是8.04的源,虽然8.10大部分能用,但会出现某些软件包找不到,请大家使用前做好备份。 速度的话,还是得自己测试,我只是推荐,下面的内容都是我复制过来自带的,不是我增加的。(PS:晚上时候我用官方的Mirror也3M/s) ...

2009-05-27 · alswl

Ubuntu8.10下MySQL的安装

Ubuntu下的MySQL安装本应该很简单,但是如果因为修改了软件源的话,反而变得麻烦起来。 为了加快更新一些组件的速度,我加入了清华的、交大等大学的源,是8.04下Ubuntu版本的,这个直接导致了之后安装MySQL的问题。 当选择Mysql-server之后,需要一堆组建,要手动安装,基本上出现这种提示,就没戏了,硬着头皮查找软件包,最后到一个perl- api的软件包这里就再也进行不下去了。 Google了好一会,才有一个人的答案正确,说是8.10下用8.04的源就会有这种问题,我换成原始的备份了的源 ...

2009-05-27 · alswl

Mp3Lrc的可执行文件

早上把代码输出成了Runnable Jar,生成一个jar格式的文件,只要是有JavaSE的电脑都可以运行了。 当然,不是双击运行,进入CMD,然后进入jar文件所在文件夹,运行"java -jar Mp3Lrc.jar" 就会出来提示输入Mp3根目录和歌词根目录,把两个目录输入就可以运行了。 猛击这里下载Mp3Lrc.rar 这个程序是自己用的,可能存在Bug,由于会操作文件,请在使用前备份重要资料(虽然根本没有删除命令,只有复制命令)

2009-05-26 · alswl

Java写的Mp3歌词复制器

大家可能会遇到这样的情况,Mp3里有很多歌,电脑上也有很多相同的歌,但是有歌词。把歌词同步到Mp3播放器非常麻烦,我以前用千千静听导入目录,然后逐个播放,或 者用一个软件从网上搜索到Mp3播放器。 千千静听或者其他播放器都会有一个选项是设置歌词存储位置的,一般来说,我们听过的歌都是会自动下载歌词到这个文件夹,其实 我们完全可以不必大费周折去找lrc,只要把这个歌词文件夹和Mp3播放器同步就可以了。 以前就想写一个东西完成这个麻烦的工程,现在贴吧1.0完成了,可以休息几天,晚上花了一点时间用Java写了一个这样的小东西。 如果大家碰到和我一样的麻烦,可以试试。呃,时间仓促,没有图形界面,而且必须是Java程序员才能用,因为我这儿只提供了源码…. ...

2009-05-25 · alswl