/**
*
* @Title: init
* @Description: TODO 初始化httpclien
* @param url
* cnzz对应的链接
* @param password
* cnzz 对应的密码
* @return
*
* @return: HttpClient
*/
public static String init(HttpClient httpclient, String url, String password) {
// 建立 httpPost对象
HttpPost httpPost = new HttpPost(url);
// 建立一个NameValuePair数组,用于存储欲传送的参数
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("password", password));
String locationUrl = "";
try {
// 设置为utf-8编码
httpPost.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
HttpResponse response = httpclient.execute(httpPost);
// 获取 重定向后的url
locationUrl = response.getLastHeader("Location").getValue();
// 设置cookie
List<Cookie> cookies = ((AbstractHttpClient) httpclient).getCookieStore().getCookies();
if (cookies.isEmpty()) {
System.out.println("None");
} else {
for (int i = 0; i < cookies.size(); i++) {
System.out.println(cookies.get(i).getName() + ":" + cookies.get(i).getValue() + "-----");
}
}
// 获得返回体
HttpEntity entity = response.getEntity();
// 获得体内容
String responseHtmQueryPage = IOUtils.toString(entity.getContent());
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return locationUrl; } /**
*
* @Title: sendRequest
* @Description: TODO 根据登陆后跳转的链接发送 第二次请求
* @param httpclient
* @param locationUrl
* 登陆后重定向的链接
*
* @return: url
*/
public static String sendTwoRequest(HttpClient httpclient, String locationUrl) {
String url = "";
try {
// 发送get请求
HttpGet httpGet = new HttpGet(locationUrl);
HttpResponse response = httpclient.execute(httpGet);
HttpEntity entity = response.getEntity();
String responseHtmQueryPage = IOUtils.toString(entity.getContent());
Document document = Jsoup.parse(responseHtmQueryPage);
url = "https://web.umeng.com/" + document.select("script").html().split("'")[1];
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return url;
} /**
*
* @Title: sendRequest
* @Description: TODO 发送第三次请求
* @param httpclient
* @param url
* @return
*
*
*/
public static void sendThreeRequest(HttpClient httpclient, String url) { try {
// 发送get请求
HttpGet httpGet = new HttpGet(url);
HttpResponse response = httpclient.execute(httpGet);
HttpEntity entity = response.getEntity();
String responseHtmQueryPage = IOUtils.toString(entity.getContent()); } catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } /**
*
* @Title: sendFourRequest
* @Description: TODO 发送第四次请求 及要获取的真正数据的请求
* @param httpclient
* @param realUrl
* @return
*
* @return: String
*/
public static String sendFourRequest(HttpClient httpclient, String realUrl) {
// 发送get请求
String responseHtmQueryPage = "";
try {
HttpGet httpGet = new HttpGet(realUrl); HttpResponse response = httpclient.execute(httpGet);
HttpEntity entity = response.getEntity();
responseHtmQueryPage = IOUtils.toString(entity.getContent());
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} return responseHtmQueryPage; }

  

cnzz 模拟请求登录(传入url get data ) demo的更多相关文章

  1. C#模拟请求,模拟登录,Cookie设置、文件上传等问题汇总

    由于业务需求,最近需要模拟完成登陆某个网站,并上传所需要的文件.在开发途中,遇到了很多问题,现在,就我遇到的一些问题及解决办法说明如下,希望对遇到同样问题的人有所帮助.因为技术有限,可能有些内容并不完 ...

  2. java.net.URL 模拟用户登录网页并维持session

    java.net.URL 模拟用户登录网页并维持session 半成品,并非完全有用 import java.io.BufferedReader; import java.io.InputStream ...

  3. java.net.URL 模拟用户登录网页并维持session【转】

    java.net.URL 模拟用户登录网页并维持session 半成品,并非完全有用 import java.io.BufferedReader; import java.io.InputStream ...

  4. 根据传入url请求,返回json字符串

    /** * 根据传入url请求,返回json字符串 * @param url * @return * @throws UnsupportedEncodingException */ public st ...

  5. cookielib和urllib2模块相结合模拟网站登录

    1.cookielib模块 cookielib模块的主要作用是提供可存储cookie的对象,以便于与urllib2模块配合使用来访问Internet资源.例如可以利用 本模块的CookieJar类的对 ...

  6. 转载:curl 模拟请求

    一般情况下我们会在网页上请求后台接口,但是对于需要进行多次测试的人来说,每一次都要在网页上模拟请求,是存在很大局限性的.因此,我们需要学会模拟请求,以达到跟实际请求一样的效果. 1. curl的用法 ...

  7. python 模拟豆瓣登录(豆瓣6.0)

    最近在学习python爬虫,看到网上有很多关于模拟豆瓣登录的例子,随意找了一个试了下,发现不能运行,对比了一下代码和豆瓣网站,发现原来是豆瓣网站做了修改,增加了反爬措施. 首先看下要模拟登录的网站: ...

  8. curl 模拟请求

    https://www.jianshu.com/p/7965c56c5a2e ********************************************* 一般情况下我们会在网页上请求后 ...

  9. python模拟自动登录网站(urllib2)

    不登录打开网页: import urllib2 request = urllib2.Request('http://www.baidu.com') response = urllib2.urlopen ...

随机推荐

  1. c# 自定义排序类(冒泡、选择、插入、希尔、快速、归并、堆排序等)

    using System; using System.Text; namespace HuaTong.General.Utility { /// <summary> /// 自定义排序类 ...

  2. python爬虫入门(1)-urllib模块

    作用:用于读取来自网上(服务器上)的数据   基本方法:urllib.request.urlopen(url,data=None,[]timeout]*,cafile=None,cadefault=F ...

  3. UNIX环境高级编程 文件I/O

    大多数文件I/O 只需要用到 5个函数 :    open , read , write , lseek , close 本章描述的都是不带缓冲的I/O(read write 都调用内核中的一个系统调 ...

  4. vue样式穿透

    在一次这样的需求中,需要实现滑倒底部时自动请求数据,需要动态创建节点然后追加到某元素中,这期间遇到的问题就是在动态创建节点后,类名也已经加上了 ,但是样式就是没有生效,最后发现原因的产生竟然是< ...

  5. [剑指offer]09用两个栈实现队列插入和删除操作,C++实现

    原创博文,转载请注明出处! # 本文为牛客网<剑指offer>刷题笔记 1.题目 # 用两个栈实现队列的插入和删除操作 2.思路 栈服从先入后出的原则处理数据,队列服从先入先出的原则处理数 ...

  6. 程序设计入门-C语言基础知识-翁恺-第四周:循环控制-详细笔记(四)

    目录 第四周:循环控制 4-1 for循环 4-2 循环控制 各运算符优先级(图) 4-3 课后习题 4-4 讨论题 第四周:循环控制 4-1 for循环 for循环像一个计数循环:设定一个计数器,初 ...

  7. lx 与cd 的计算方法

    Candela to lux calculation with distance in meters The illuminance Ev in lux (lx) is equal to the lu ...

  8. CentOS 7.4中firewall防火墙详解和配置以及切换为iptables防火墙

    转载:https://blog.csdn.net/xlgen157387/article/details/52672988 一.firewall介绍 CentOS 7中防火墙是一个非常的强大的功能,在 ...

  9. BZOJ3529 [Sdoi2014]数表【莫比乌斯反演】

    Description 有一张 n×m 的数表,其第 i 行第 j 列(1 <= i <= n, 1 <= j <= m)的数值为 能同时整除 i 和 j 的所有自然数之和.给 ...

  10. idea Java spring 入门 demo

    根据这个 来实现 理解 https://www.cnblogs.com/xing901022/p/3963962.html 这里没有说如何导入包,现在我们用 idea 来实现 新建项目结构后 RUN ...