题目:在A页面登录后,重定向到A页面,然后访问B页面,header中带一指定内容"Content":"2018",然后从response中读取answer的值。

主要分三步分,首先在A页面发送POST请求:

String url = "http://192.168.1.105/";
String responseMsg = "";
byte[] responseBody = null;
HttpClient httpclient = new HttpClient();
httpclient.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
httpclient.getParams().setParameter("http.protocol.single-cookie-header", true);
PostMethod httpPost = new PostMethod(url);
httpPost.setRequestHeader("ContentType", "application/xml;charset=utf-8");
String cookie = ".AspNetCore.Antiforgery.2asieuWmzUU=CfDJ8LzDUhYKe7pEsWY4r-H8oTev6zo3ttt4qg9Zo6xNEWNET1tpSwNSHS9SQf2xe1p9witfHgmLnLx1HKCvGsynU6Sv-YMB4u_Pbh0ZAQRoEAJ7KVGH09LsqrBowNV1uh6iU71ealeplU4Yps3td_dBh0I";
httpPost.setRequestHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8");
httpPost.setRequestHeader("Accept-Encoding", "gzip, deflate");
httpPost.setRequestHeader("Accept-Language", "zh-CN,zh;q=0.9");
httpPost.setRequestHeader("Cache-Control", "max-age=0");
httpPost.setRequestHeader("Connection","Keep-Alive");
httpPost.setRequestHeader("Content-Length", "274");
httpPost.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
httpPost.setRequestHeader("Host", "192.168.1.105");
httpPost.setRequestHeader("Origin", "192.168.1.105");
httpPost.setRequestHeader("Origin", "http://192.168.1.105");
httpPost.setRequestHeader("Referer", "http://192.168.1.105/");
httpPost.setRequestHeader("Upgrade-Insecure-Requests", "1");
httpPost.setRequestHeader("User-Agent", Constants.USER_AGENT);
httpPost.setRequestHeader("Cookie", cookie);//ltpatoken+sessionid
httpclient.getHttpConnectionManager().getParams().setConnectionTimeout(6000000);
httpclient.getHttpConnectionManager().getParams().setSoTimeout(6000000);
try {
httpPost.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,new DefaultHttpMethodRetryHandler(3, false));
NameValuePair certsn=new NameValuePair("Input.Email", "yxteng@126.com");
NameValuePair certinfo=new NameValuePair("Input.Password", "&wxZC3`jBqo)'qtX");
NameValuePair subdn=new NameValuePair("__RequestVerificationToken", "CfDJ8LzDUhYKe7pEsWY4r-H8oTdN9wZgh60Tje5CyRR89Ps2Y67XUzTS7MdnpqmYWOjxqHVytkJq_cV3z8vwvsK6729LWWH1MRlV1QF6tqWRiOGEphxLKkbUxoKQfVEVRRjXV5LTKZafolsgJyOp0YbKnow");
NameValuePair ramcode=new NameValuePair("Input.RememberMe", "false");
httpPost.setRequestBody(new NameValuePair[]{certsn,certinfo,subdn,ramcode});
LogUtils.info("开始登陆...");
int statusCode = httpclient.executeMethod(httpPost);
Cookie[] cookies = httpclient.getState().getCookies();
cookie="";
for (int i = 0; i < cookies.length; i++) {
cookie+=cookies[i].toString();
if(i!=cookies.length-1){
cookie+=";";
}
LogUtils.info(cookies[i].getName()+":"+cookies[i].getValue());
}
LogUtils.info("COOKIE:"+cookie);
if (statusCode == HttpStatus.SC_OK) {
responseBody = httpPost.getResponseBody();
LogUtils.info("登陆成功"+statusCode);
}
else {
responseMsg = String.valueOf("statusCode:"+statusCode);
LogUtils.error("登陆失败"+statusCode);
}

  然后get方法模拟重定向到本页:

cookie = ".AspNetCore.Antiforgery.2asieuWmzUU=CfDJ8LzDUhYKe7pEsWY4r-H8oTev6zo3ttt4qg9Zo6xNEWNET1tpSwNSHS9SQf2xe1p9witfHgmLnLx1HKCvGsynU6Sv-YMB4u_Pbh0ZAQRoEAJ7KVGH09LsqrBowNV1uh6iU71ealeplU4Yps3td_dBh0I; .AspNetCore.Identity.Application=CfDJ8LzDUhYKe7pEsWY4r-H8oTfyoqahKhxlTHouYjwJDlVmJ6BdZ8pxXvOLoHDu_Ci9kzyy9GKtpRYYF06bLr3flLY6oiM7ZEJRAH-ARkiwchgjVNWPB2STXkc42E-NtLz94J9RVVhluNbN99JUUCdSXKqQgj0MUq4EpB6D4zF-Diu2wkWjhIty8HxLX4-JG6r3X8XvcJnDyqwt4YgWimcJ_SrIsfS4xdem-9zBK4zPJtorPZZwlOah0IYR7hLd7-2TaJxCk_QvQG5GIaAqRc4A-2I8eR5g6irx9SgI0XIBdxEuqpqUn1er5CIf0olBK3VXtzwNEwDTv8AkDqDvOxw7m9kjkEgDrYs3LmgDpjsg5bgiSrCcfoFx_X_ODp7Q-g5dZLOqYZQxD-bMRy3Uwu97JX-nLqtMLKoY0POhSYX17Y_SH4vFgu9e3I8matifsZAuzKIaT4DFrzyhf_ihi1ffxLnIhYnydMuM27RgrMDNq1EUue1Edym4XUhgxJjKOoiMLg_paJ14l85OXu_M51upCNB4568YKARPVJiT0SCFaA61rYoVOpZaexNLQbxc6kxe0jB5BthCVjU00xpt96QeZPU";
LogUtils.info("开始跳转首页...");
url = "http://192.168.1.105/";
GetMethod httpget = new GetMethod(url);
httpget.setRequestHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8");
httpget.setRequestHeader("Accept-Encoding", "gzip, deflate");
httpget.setRequestHeader("Accept-Language", "zh-CN,zh;q=0.9");
httpget.setRequestHeader("Cache-Control", "max-age=0");
httpget.setRequestHeader("Connection","Keep-Alive");
httpget.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
httpget.setRequestHeader("Host", "192.168.1.105");
httpget.setRequestHeader("Referer", "http://192.168.1.105/");
httpget.setRequestHeader("Upgrade-Insecure-Requests", "1");
httpget.setRequestHeader("User-Agent", Constants.USER_AGENT);
httpget.setRequestHeader("Cookie", cookie);//ltpatoken+sessionid
statusCode = httpclient.executeMethod(httpget);
if (statusCode == HttpStatus.SC_OK) {
responseBody = httpget.getResponseBody();
LogUtils.info("跳转V成功"+statusCode);
}
else {
responseMsg = String.valueOf("statusCode:"+statusCode);
LogUtils.error("跳转V失败"+statusCode);
return;
}

  最后访问目标页,header中带上指定内容:

url = "http://192.168.1.105/Problems/HttpRequest";
httpget = new GetMethod(url);
httpget.setRequestHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8");
httpget.setRequestHeader("Accept-Encoding", "gzip, deflate");
httpget.setRequestHeader("Accept-Language", "zh-CN,zh;q=0.9");
httpget.setRequestHeader("Cache-Control", "max-age=0");
httpget.setRequestHeader("Connection","Keep-Alive");
httpget.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
httpget.setRequestHeader("Host", "192.168.1.105");
httpget.setRequestHeader("Referer", "http://192.168.1.105/");
httpget.setRequestHeader("Upgrade-Insecure-Requests", "1");
httpget.setRequestHeader("Content", "2018");//秘钥
httpget.setRequestHeader("User-Agent", Constants.USER_AGENT);
httpget.setRequestHeader("Cookie", cookie);//ltpatoken+sessionid
statusCode = httpclient.executeMethod(httpget);
if (statusCode == HttpStatus.SC_OK) {
Header[] hlist= httpget.getResponseHeaders();
for(Header h:hlist){
LogUtils.info(h.getName()+":"+h.getValue());
}
LogUtils.info("跳转V成功"+statusCode+responseBody);
}
else {
responseMsg = String.valueOf("statusCode:"+statusCode);
LogUtils.error("跳转V失败"+statusCode+responseBody);
return;
}

  在控制台中查看答案即可。

最新文章

  1. sublime3添加对react代码检查
  2. java中的静态变量---static
  3. C#中的那些全局异常捕获
  4. Oracle中“行转列”的实现方式
  5. &lt;转&gt;.php导出excel(多种方法)
  6. c++学习笔记——聚合类
  7. Revit如何设置尺寸标注的箭头样式
  8. hue安装与部署
  9. IntelliJ IDEA使用总结篇
  10. Symfony2学习笔记之表单
  11. 转载:fstream和ifstream详细用法
  12. CSS边框属性二---border-images
  13. Asp.Net MVC页面静态化功能实现一:利用IHttpModule,摒弃ResultFilter
  14. flex 分页打印表格功能
  15. 解锁 vmware esxi 6.7 并安装 mac os 10.13
  16. 在badboy中添加检查点并且参数化
  17. 高级FTP服务器开发
  18. python:逻辑运算与编码
  19. HDU 5839 Special Tetrahedron 计算几何
  20. sqlserver 2008 开启CLR

热门文章

  1. [coci2015-2016 coii] Palinilap【字符串 哈希】
  2. SpringMVC-高级参数绑定
  3. oratop
  4. dubbo与springboot的三种整合方式
  5. B. Apple Tree 暴力 + 数学
  6. Access denied for user &#39;&#39;@&#39;localhost&#39; to database 的一个问题
  7. Linux 安装reids
  8. javaScript中的严格模式 (译)
  9. MyBatis框架的XML数据访问Dao层接口的组合使用
  10. Web开发入门不得不看章