- 浏览: 263247 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
wangking717:
4jcms已转为私人项目了,供以后自己用~ 如果有人感兴趣的, ...
企业网站CMS开发萌芽阶段,正在策划中... -
wangking717:
CommonAccount 写道怎么我写了没反应你需要把jqu ...
Jquery文字连接移动效果,鼠标放上去,横向移动特效 -
程序员是怎么炼成的:
你好,需要用到的jar包有哪些,如果用httclient4来开 ...
HttpClient4 Post XML数据 -
CommonAccount:
怎么我写了没反应
Jquery文字连接移动效果,鼠标放上去,横向移动特效 -
wangking717:
shankesgk2 写道这个还在开发吗?是的,在开发阶段~
企业网站CMS开发萌芽阶段,正在策划中...
在模拟登陆之前做的准备工作就是利用抓包工具分析数据,推荐用wireshark。本次抓openid.org.cn,纯属演示,没实际意义,切勿搞破坏或者偷数据。
抓包下来的数据如下:
看来OpenID没做什么安全机制方面的考虑,就单纯的讲文本域username,password post到www.openid.org.cn/login上。
OK。万事俱备只欠东风,开始模拟登陆吧。
package test; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.List; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; import org.apache.http.client.ResponseHandler; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.BasicResponseHandler; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; import org.apache.http.protocol.HTTP; public class SimulateLogin { private HttpClient httpClient; public SimulateLogin(String loginURL,String userName, String password) { this.httpClient = new DefaultHttpClient(); // 构造一个POST请求 HttpPost httpPost = new HttpPost(loginURL); //httpPost.setHeader("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.63 Safari/534.3"); //如果对方系统没做特殊限制,可不用 // 将要POST的数据封包 List<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("username", userName)); params.add(new BasicNameValuePair("password", password)); // 封包添加到Post请求 try { httpPost.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8)); } catch (UnsupportedEncodingException e1) { e1.printStackTrace(); } HttpResponse response = postMethod(httpPost); } /** * 嗅探指定的GET页面 * @param url * @return String txt */ public String notifyGetPage(String url) { HttpGet get = new HttpGet(url); ResponseHandler<String> responseHandler = new BasicResponseHandler(); String txt = null; try { txt = httpClient.execute(get, responseHandler); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { get.abort(); } return txt; } /** * 嗅探指定的POST页面,,因为post方法要封装参数,因此在函数外部封装好传参 * @param post * @return String txt */ public String notifyPostPage(HttpPost post) { ResponseHandler<String> responseHandler = new BasicResponseHandler(); String txt = null; try { txt = httpClient.execute(post,responseHandler); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { post.abort(); } return txt; } // 用post方法向服务器请求 并获得响应,因为post方法要封装参数,因此在函数外部封装好传参 public HttpResponse postMethod(HttpPost post) { HttpResponse resp = null; try { resp = httpClient.execute(post); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { post.abort(); } return resp; } // 用get方法向服务器请求 并获得响应 public HttpResponse getMethod(String url) { HttpGet get = new HttpGet(url); HttpResponse resp = null; try { resp = httpClient.execute(get); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { get.abort(); } return resp; } public static void main(String[] args) { SimulateLogin simulateLogin = new SimulateLogin("http://www.openid.org.cn/login","【用户名】", "【密码】"); System.out.println(simulateLogin.notifyGetPage("http://www.openid.org.cn/sites")); //获得我访问过的站点信息 } }
很简单吧..这是最简单的登陆,如果站点用到验证码,或者用JS加密字符串,SSL的话,肯定会让你折腾大半天的。。
发表评论
-
TOMCAT6服务器常用配置(包括设置端口,默认路径,GZIP等)
2012-05-05 01:41 1326一般TOMCAT上部署项目的时候,都会用到改端口,设置T ... -
IKAnalyzer分词测试DEMO,非Lucene,Solr整合。
2012-04-11 10:08 2622最近项目里要用到分词,将一个文章标题进行分词,存为TAG。然后 ... -
Spring + Quartz定时器配置与小测试
2012-04-10 17:17 3144各种企业应用几乎都会碰到任务调度的需求,就拿论坛来说:每 ... -
JSTL自定义标签,小功能大用途
2011-09-27 18:08 1692近期做项目,使用JSTL对字符串进行编码,发现没有该函 ... -
Log4j的FileAppender相对目录保存策略
2011-03-13 13:28 2346没办法,用别人的虚拟空间,要保存日志,总不能用Log4j的绝对 ... -
补上JSP的验证码程序
2011-02-13 01:47 1077突然发现,写了好些验证码程序,唯独JAVA的通用数字验证码没写 ... -
DOM4J对SOAP的返回信息解析
2011-01-26 17:48 3277用DOM4J的XML解析式拿不到节点的。所以网上利用DOM4J ... -
JAVA数字证书及TOMCAT SSL支持配置说明
2011-01-18 17:50 2797wangking717 写道 项目 ... -
ANT乱指一点通,哈哈
2011-01-11 11:09 868ANT是一个build tool,也就是一个批处理脚本,可以把 ... -
对于FreeMarker的一些看法
2011-01-10 17:44 1026体验了下FreeMarker的一些使用方法,感觉FM很方便,但 ... -
Android小记
2011-01-03 19:54 798wangking 写道 不得不说,当随着千元 ... -
JAVA设计模式之代理模式:Proxy
2010-12-17 13:37 1013wangking717 写道 代理 ... -
JAVA定时器三种实现方案
2010-12-13 11:27 20691.在Servlet中启动timer,该Servlet在 ... -
JAVA AES加密解决方案
2010-12-10 15:12 3139写道 此次加密基于AES-128 CBC PKCS5填充模 ... -
JAVA乱码之Byte分析
2010-12-10 14:28 1899在做WEB开发的时候经常会遇到乱码问题,在解析字节数组的时候指 ... -
JAVA有时候也需要序列化
2010-12-08 21:45 1568wangking717 写道 序列化就是将一个对象的状态保存 ... -
webservice之axis2使用总结
2010-12-01 17:24 1669一语概括 写道 WebService用于异构,方便不同的 ... -
我也来说说JAVA方法的参数传递
2010-11-19 14:23 904wangking 写道 在群里看到有人在讨论方法参数传 ... -
用pushlets实现java comet,长连接技术
2010-09-23 16:20 2424现在很多项目不单单只是要求Client->Server, ... -
java线程初步认识
2010-09-23 16:03 987这里写了一个小例子,学习一下线程实现的两种方式(继承自Thre ...
相关推荐
import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpException; import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.httpclient.methods....
...HttpClient org.apache.commons.httpclient....
《Apache Commons HttpClient 3.1:HTTP客户端编程的基石》 ...然而,需要注意的是,HttpClient 3.1已不再维护,最新的稳定版本为HttpClient 4.x,对于新项目建议使用更现代的版本以获取更好的性能和兼容性。
2013-11-21 15:31 292,890 httpclient-4.0.2.jar 2017-12-20 12:08 351,132 httpclient-4.1.1.jar 2012-08-03 01:45 451,595 httpclient-4.1.2-sources.jar 2012-08-03 01:44 352,254 httpclient-4.1.2.jar 2012-08-...
《JAVA中使用HttpClient:commons-httpclient-3.0.jar详解》 在JAVA开发中,进行HTTP请求时,Apache的HttpClient库是一个不可或缺的工具。本文将深入解析`commons-httpclient-3.0.jar`,它是HttpClient的一个重要...
标题中的"org.apache.commons.httpclient相关架包"指的是这个库的一系列组件,主要包含在`httpclient.jar`文件中。这个JAR文件包含了HttpClient库的所有必需类和资源,可以被导入到Java项目中以实现HTTP通信功能。 ...
小贝程序员生活\jar\lib\com.springsource.org.apache.commons.httpclient-3.1.0.jar 小贝程序员生活\jar\lib\com.springsource.org.apache.commons.httpclient-3.1.0.jar 小贝程序员生活\jar\lib\...
此外,Apache HttpClient库已经被弃用,现在推荐使用Java 7及更高版本内置的`java.net.HttpURLConnection`或更现代的库如Apache HttpClient 4.x或OkHttp。不过,对于理解HTTP客户端编程的基本原理,HttpClient仍然是...
import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.methods.ByteArrayRequestEntity; import org.apache.commons.httpclient.methods.PostMethod;
本文将深入探讨`httpclient-4.5.jar`这个包,以及它所依赖的相关jar包,帮助你更好地理解和使用这个强大的工具。 HTTPClient 4.5是Apache HttpClient项目的最新稳定版本,它提供了全面的HTTP协议支持,包括标准方法...
将`httpclient.jar`下载并添加到项目类路径中,即可使用HttpClient的功能。 总的来说,HttpClient是Java开发者处理HTTP通信的强大工具,它简化了网络请求的实现,同时提供了丰富的功能和配置选项,满足各种网络应用...
.NET CORE HttpClient 的使用方法 .NET CORE 中的 HttpClient 是一个非常重要的组件,它提供了一个强大且灵活的方式来发送 HTTP 请求。然而,在使用 HttpClient 时,我们需要注意一些重要的配置和使用方法,以避免...
例如,在HttpClient 3.x中,代码可能会使用`***mons.httpclient.HttpClient`类和`***mons.httpclient.methods.GetMethod`等,而在4.x版本中,这些都被新的API所替代。程序员需要熟悉`org.apache....
此外,HttpClient还支持异步操作,可以在多线程环境中高效地处理并发请求。 2. **httpcore-4.4.12.jar**:这是HttpClient的核心库,包含了HTTP协议的基本组件,如连接管理、请求和响应模型、编码器和解码器等。...
Jsoup+httpclient模拟登陆和抓取页面.pdf
在标题"org.apache.commons.httpclient相关资源包"中,我们可以看出这是关于使用Apache HttpClient进行HTTP通信的知识点。Apache HttpClient库是Apache软件基金会的一个项目,它提供了对HTTP协议的全面支持,包括GET...
... com.springsource.org.apache.commons.httpclient-3.1.0.jar, com.springsource.org.apache.commons.io-1.4.0.jar,com.springsource.org.apache.commons.logging-1.1.1.jar, ...
在实际应用中,为了使用HttpClient,你需要将zip文件中的jar包解压后添加到项目的类路径中。同时,根据项目需求,可能还需要添加其他依赖,例如处理JSON或XML数据的库。在编写代码时,可以参考Apache HttpClient的...
本文将深入探讨HttpClient 4.5.2的核心特性、使用方法以及实际应用中的关键点。 1. HttpClient 4.5.2概述: HttpClient 4.x系列是Apache基金会开发的一个开源项目,旨在提供一个高效的、高度可定制的HTTP客户端API...
这是我一个抠图程序发送请求时专用的jar,maven仓库不好下载,我就上传到csdn,以便下次可以继续使用