利用httpclient 模拟登录,获取登录后信息数据
2013-03-20 23:19
826 查看
本例使用httpclient 3.0.jar
转自:http://blog.csdn.net/chenzenan/article/details/8505980
转自:http://blog.csdn.net/chenzenan/article/details/8505980
package test; import org.apache.commons.httpclient.Cookie; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.cookie.CookiePolicy; import org.apache.commons.httpclient.NameValuePair; import org.apache.commons.httpclient.methods.GetMethod; import org.apache.commons.httpclient.methods.PostMethod; /** * @author 作者 :chenzenan E-mail:chen.ze.nan@163.com * @version 创建时间:2012-8-10 下午04:35:48 Copyright ? 2012-8-10 Shanghai XXX Co. * Ltd. All right reserved. */ public class HttpClientLogin { public static void main(String[] args) { // 登陆 Url String loginUrl = "http://localhost/login.jsp"; // 需登陆后访问的 Url String dataUrl = "http://localhost/applyopen/printApprize.jsp?iid=1516"; HttpClient httpClient = new HttpClient(); // 模拟登陆,按实际服务器端要求选用 Post 或 Get 请求方式 PostMethod postMethod = new PostMethod(loginUrl); // 设置登陆时要求的信息,用户名和密码 NameValuePair[] data = { new NameValuePair("name", "admin"), new NameValuePair("password", "123456") }; postMethod.setRequestBody(data); try { // 设置 HttpClient 接收 Cookie,用与浏览器一样的策略 httpClient.getParams().setCookiePolicy( CookiePolicy.BROWSER_COMPATIBILITY); httpClient.executeMethod(postMethod); // 获得登陆后的 Cookie Cookie[] cookies = httpClient.getState().getCookies(); StringBuffer tmpcookies = new StringBuffer(); for (Cookie c : cookies) { tmpcookies.append(c.toString() + ";"); } // 进行登陆后的操作1581,1602,1603,1610,1609,1608,1607,1606,1605,1620,1619,1617,1616,1622,1626,1642,1648,1647,1657 GetMethod getMethod = new GetMethod(dataUrl); // 每次访问需授权的网址时需带上前面的 cookie 作为通行证 getMethod.setRequestHeader("cookie", tmpcookies.toString()); // 你还可以通过 PostMethod/GetMethod 设置更多的请求后数据 // 例如,referer 从哪里来的,UA 像搜索引擎都会表名自己是谁,无良搜索引擎除外 postMethod.setRequestHeader("Referer", "http://www.cc"); postMethod.setRequestHeader("User-Agent", "www Spot"); httpClient.executeMethod(getMethod); // 打印出返回数据,检验一下是否成功 String text = getMethod.getResponseBodyAsString(); System.out.println(text); } catch (Exception e) { e.printStackTrace(); } } }
相关文章推荐
- 利用httpclient 模拟登录,获取登录后信息数据
- apache HttpClient 4.3.4自动登录并抓取中国联通网页用户基本信息和账单数据
- 利用HttpRequest登录到某个网站,然后获取网站信息的程序示例
- 使用HttpClient登录知乎获取返回页面信息
- 利用HttpRequest登录到某个网站,然后获取网站信息的程序示例
- Java网络爬虫(二)--HttpClient设置头部信息与模拟登录策略
- [asp.net]利用HttpRequest登录到某个网站,然后获取网站信息
- [asp.net]利用HttpRequest登录到某个网站,然后获取网站信息
- Java HttpClient 实现自动登录与获取网页信息
- 利用HttpRequest登录到某个网站,然后获取网站信息的程序示例
- Java通过httpclient获取cookie模拟登录
- 利用HttpRequest登录到某个网站,然后获取网站信息的程序示例
- 利用HttpWebRequest和HttpWebResponse获取Cookie并实现模拟登录
- 安卓HttpClient+Jsoup+Httpwatch模拟登陆正方教务获取信息
- C#利用HttpClient获取微信Web扫描登录二维码
- 利用HttpRequest登录到某个网站,然后获取网站信息的程序示例 [原创]
- 利用HttpWebRequest和HttpWebResponse获取Cookie并实现模拟登录
- 利用Jsoup模拟跳过登录爬虫获取数据
- Apache HttpClient4.2.5 模拟post、登录并访问验证授权数据
- 利用httpclient 模拟登录,获取登录后信息数据