/**

*

* @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 params = new ArrayList();

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 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;

}

java cnzz_cnzz 模拟请求登录(传入url get data ) demo相关推荐

  1. Java HttpURLConnection模拟请求Rest接口解决中文乱码问题

    Java HttpURLConnection模拟请求Rest接口解决中文乱码问题 参考文章: (1)Java HttpURLConnection模拟请求Rest接口解决中文乱码问题 (2)https: ...

  2. java如何模拟请求_单元测试如何模拟用户请求

    python web自动化测试设计构工具书 40.9元 包邮 (需用券) 去购买 > 错误 正当我高高兴兴写完后台c层的测试代码准备提交时,测试机器人报了很多401错误,把代码拉下来一看,原来当 ...

  3. JAVA之模拟注册登录幸运抽奖

    1.控制台程序开发. 2.变量和运算符. 3.数据类型与数组. 4.流程控制语句. 5.检测:模拟注册登录幸运抽奖全过程:主要功能 :注册.登录.幸运抽奖.  打开我们的记事本,写一段代码: impo ...

  4. java假设模拟请求重新启动路由器(网络爬虫经常使用),还有java怎样下载图片

    我们假设在公司或家里使用网络爬虫去抓取自己索要的一些数据的时候,经常对方的站点有defence机制,会给你的http请求返回500错误,仅仅要是同样IP就请求不到数据,这时候我们仅仅能去重新启动路由器 ...

  5. java 模拟网页_使用Java代码模拟网页登录(有例子程序)

    最近股票很火,打算研究用代码下载股票数据,于是我做了一个Java代码的模拟IE网页登录的程序, 登录新浪的股票页面并下载一些数据来分析, 基本原理是利用Java自带的HttpURLConnection ...

  6. 鸿蒙harmonyOS开发APP时,使用Retrofit+Java在get请求时遇到 ?pageNum=1pageSize=10的url 的get请求的写法

    鸿蒙harmonyOS开发APP时,使用Retrofit+Java在get请求时替换URL的时候会出现一个错误 java.lang.IllegalArgumentException: URL quer ...

  7. Java 如何模拟真正的并发请求?

    有时需要测试一下某个功能的并发性能,又不要想借助于其他工具,索性就自己的开发语言,来一个并发请求就最方便了. java中模拟并发请求,自然是很方便的,只要多开几个线程,发起请求就好了.但是,这种请求, ...

  8. Java 模拟58登录

    Java 模拟 58登录 (一) 分析 标签(空格分隔): Java 实习期间需要做一个模拟58登录然后爬取简历,第一次做项目遇到很多坑 同时网上关于58登录的又没有很多资料,遇到了很多坑,这里记录一 ...

  9. Java 模拟58登录(二) 实现

    Java 模拟58登录(二) 实现 标签(空格分隔): Java 实习期间需要做一个模拟58登录然后爬取简历,之前已经写了一篇分析,现在具体实现过程 有关过程的分析,可以参考我的另一篇博客 Java ...

  10. java实现模拟登录新浪微博

    最近做新浪微博的数据挖掘,遇到不少的问题,搜索了不少的网上资源,现在我来总结一下,希望对大家有所帮助: 1.准备工作 只是登录无需申请新浪和腾迅的开发者账号,如果需要发送微博功能,需要申请一个新浪和腾 ...

最新文章

  1. 继承和多态 3.0 -- 菱形继承
  2. 农林废弃物如何变废为宝?
  3. 网页加速系列(五)、 网页加速之进阶上篇
  4. Kernel Video Converter中文版
  5. lisp 角平分线_最佳VisualLISP及VBAforAutoCAD2000程序123例 张光斌.pdf
  6. SpringBoot高级消息-RabbitMQ运行机制
  7. leetcode 516. Longest Palindromic Subsequence | 516. 最长回文子序列(递归 -> 傻缓存 ->DP)
  8. js获取浏览器语言(ie、ff、chrome)、contextpath
  9. asp.net 报表页面模板_20套大屏模板,教你3分钟制作出酷炫的可视化大屏
  10. Acwing 216. Rainbow的信号
  11. vue添加html开启服务器_Vue 项目(HTML5 History 模式) 部署服务器
  12. js事件---事件流
  13. 【chrome】插件开发-教程00(如何开发插件)
  14. Overloud TH3 for Mac - 电吉他效果器
  15. Ds918 ds3615 ds3617区别_苹果12手机用什么卡 大卡和小卡的区别介绍
  16. 白盒测试的测试用例设计方法
  17. lazarus 中文教程_Lazarus中文版下载|Pascal编译器Lazarus下载 v1.6.0中文版(附使用教程)_星星软件园...
  18. 表贴电阻尺寸与什么有关_贴片电阻、贴片电容规格、封装、尺寸、功率(转)
  19. HP笔记本电脑如何设置屏幕亮度
  20. 常用生活必备在线网页软件

热门文章

  1. html重复渐变包括,CSS3怎么实现重复线性渐变效果
  2. 如何提高 CSS 动画性能
  3. 宇枫资本上班族理财的方法
  4. MNIST手写数据,从训练到数据预测(keras)
  5. 带你深入了解GPU、FPGA和ASIC
  6. k8s-身份认证与权限
  7. java list取补集_Java 2 个 List 集合数据求并、补集操作
  8. 美军与敏捷领导力—八个改变工作方式世界的老兵
  9. mysql设置不区分大小写_更改MYSQL数据库不区分大小写表名
  10. java adsl 拨号_[zt]利用脚本实现ADSL自动拨号上网