用java开发校内网小工具 (一)
其实想法只是源于公司的网络,公司的网络不是很稳定,只能用代理上网,而且有时会刷不出网页,一般刷新10次才能刷新出一次,每天登录校内网很费劲,所以想编写一个可以自动登录校内网读取信息的东西,开始觉得挺简单的,就是post和get,开始想用C++Builder做,最终还是被一堆的指针打败了,决定用java做,可是java做界面不是一般的费事啊…….只能用Netbeans来做了(表鄙视偶…)
1.第一步当然是先不做界面,直接模拟登录,我只知道用Post的方法,具体的就不熟悉了,哎,想到了我的好朋友,“百度”,每次遇到问题就百度一下^_^,最后查到一个叫“Httpclient”的组件,可以很方便的来模拟Post和Get,无奈公司的网太慢,只能回家再下载了….
2.下载完成,一共需要3个Jar包 commons-codec.jar commons-httpclient.jar commons-logging.jar
3. get总比post简单…..所以先尝试写get的方法,网上找了一段代码
[code]HttpClient client = new HttpClient();
//设置代理服务器地址和端口
// client.getHostConfiguration().setProxy("",808);
//使用GET方法,如果服务器需要通过HTTPS连接,那只需要将下面URL中的http换成https
HttpMethod method = new GetMethod("http://www.sohu.com");
client.executeMethod(method);
//打印服务器返回的状态
System.out.println(method.getStatusLine());
//打印返回的信息
String response =new String(method.getResponseBodyAsString().getBytes("8859_1"));
System.out.println(response);
//释放连接
method.releaseConnection();[/code]
成功跑起来了,还不错:)
4.下面就开始写post代码了,首先写不需要读取cookie的,这个简单,就不写代码了
5.现在准备写校内网登录的代码,一切都要先登录才可以啊^_^,因为一个Cookie折腾了我好久….主要是对HTTP协议不熟悉,在网上找了很多很多的文章,终于还是自己写出代码调通了^_^
HttpClient httpClient = new HttpClient();
//设置代理服务器地址和端口
[code] httpClient.getHostConfiguration().setProxy("22.1.245.133",808);
httpClient.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
httpClient.getHostConfiguration().setHost("www.xiaonei.com", 80, "http"); PostMethod post = new PostMethod("http://www.xiaonei.com/Login.do");
NameValuePair email = new NameValuePair("email", "帐号");
NameValuePair password = new NameValuePair("password", "密码");
post.setRequestBody(
new NameValuePair[] {email,password});
httpClient.executeMethod(post);
post.releaseConnection();
HttpMethod method = new PostMethod("www.xiaonei.com");
method.addRequestHeader("Content-Type", "text/html; charset=gb2312");
httpClient.executeMethod(method);
//打印服务器返回的状态
System.out.println(method.getStatusLine());
//打印返回的信息
String response = new String(method.getResponseBodyAsString());
System.out.println(response);
//释放连接
method.releaseConnection(); [/code]
6.成功登录了,呵呵,先休息会儿^_^(暂时的界面如下)
[img][attach]1[/attach][/img]
wissne
2008年8月6日 12:16
你好,请问可以将这个软件的代码发给我吗?我想自己也学学
wissne
2008年8月6日 12:16
你好,请问可以将这个软件的代码发给我吗?我想自己也学学wissne@gmail.com
qing
2008年10月21日 16:28
我用httpclient登陆网页。能成功打印登陆后的网页。但再打开就失效了。请问怎样保存信息(session)??
请赐教~
361870877@163.com
lovelyrebecca
2010年1月17日 21:45
你好, 海蓝, 我最近也想用HttpClient来实现登录校内网(现在已经更改为人人网了, 呵呵), 登录过程伴随着几次重定向, 现在还没有搞定, 有可能是cookie的问题, 你贴出的登录代码还没涉及到这一块儿, 所以,希望达人不吝出手相助啊。
lovelyrebecca
2019年4月24日 00:52
你好, 海蓝, 我最近也想用HttpClient来实现登录校内网(现在已经更改为人人网了, 呵呵), 登录过程伴随着几次重定向, 现在还没有搞定, 有可能是cookie的问题, 你贴出的登录代码还没涉及到这一块儿, 所以,希望达人不吝出手相助啊。
wissne
2019年4月24日 00:52
你好,请问可以将这个软件的代码发给我吗?我想自己也学学wissne@gmail.com
wissne
2019年4月24日 00:52
你好,请问可以将这个软件的代码发给我吗?我想自己也学学