HttpClient 模拟登录保持session并继续进行登录后操作

 公司考勤签到,每天都要登录系统签到,于是就在想:如果可以每天自动签到就好了。

看了http://unmi.cc/httpclient-login-session/这篇微博,也试着写了下。

大概思路是:模拟登录考勤系统,调用“打点接口”.

import org.apache.commons.httpclient.Cookie;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.cookie.CookiePolicy;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;

import com.vortex.sign.vo.ParamVo;

public class HttpClientLoginAndSign {
	
	private static final String SIGN_REQ_URI = "签到接口相对路径";
	private static final String LOGIN_REQ_URI = "登录接口相对路径";
	private static final String REQ_ADDR = "server IP+Port"; 
        //以上参数不方便透露
	
    /**
     * 模拟登录+打点
     * @param pv 数据传递容器
     */	
    public static void loginAndSign(ParamVo pv){
        //模拟登录URL
        String loginUrl = REQ_ADDR+LOGIN_REQ_URI;
		String type = SignTypeHandler.getSignType();
        
        //模拟打点URL+参数
        String dataUrl = REQ_ADDR+SIGN_REQ_URI+"?account="+pv.getUserId()+"&id="+pv.getId()+"&type="+type;
 
        HttpClient httpClient = new HttpClient();
 
        //获得POST请求方法
        PostMethod postMethod = new PostMethod(loginUrl);
        postMethod.setRequestHeader("Referer", 实际值);
        postMethod.setRequestHeader("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2453.0 Safari/537.36");
        //设置登录请求参数
        NameValuePair[] data = {
                new NameValuePair("username", pv.getUsername()),
                new NameValuePair("password", pv.getPassword()),
        };
        postMethod.setRequestBody(data);
 
        try {
            //设置 HttpClient 接收 Cookie,用与浏览器一样的策略
            httpClient.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
            int loginState = httpClient.executeMethod(postMethod);
            System.out.println(loginState);
            //获得登陆后的 Cookie
            Cookie[] cookies=httpClient.getState().getCookies();
            String tmpcookies= "";
            for(Cookie c:cookies){
                tmpcookies += c.toString()+";";
            }
 
            //进行登陆后的操作
            GetMethod getMethod = new GetMethod(dataUrl);
 
            //每次访问需授权的网址时需带上前面的 cookie 作为通行证
            getMethod.setRequestHeader("cookie",tmpcookies);
            
            
            httpClient.executeMethod(getMethod);
        } catch (Exception e) {
            System.out.println("登陆出错------------->"+e.getMessage());
        }   
    }
}

 这一段代码重要的地方就是 getMethod.setRequestHeader("cookie",tmpcookies);

我要测试的系统在登录后将用户的token放入了session中,以后的请求都被过滤器过滤,如果session中没有token,那么就无法完成访问。

所以在签到请求的时候要先把登录后得到的cookie存入到本次的请求中去。

因为cookie中有JSESSIONID,这个就是session标识,server也就是用这个来获取session并使用的。

所以当getMethod设置了cookie后,再去做签到请求,通俗的讲:考勤系统会拿着这个sessionId去寻找session,找到后寻找在登录时已经存入的登录信息。这是一定能找到的,因此是可以请求成功的。



ASP.NET Forms身份认证原理与生产级实践指南 Forms身份认证是ASP.NET中基于Cookie的轻量级认证机制,其核心在于通过加密票据(FormsAuthenticationTicket)在无状态HTTP协议上构建可信赖的用户身份上下文。它依赖machineKey进行对称加密与签名验证,利用slidingExpiration实现会话自动续期,并通过HttpContext.User完成认证与授权的解耦。该机制不依赖Session,具备高并发、低开销特性,广泛应用于政企内网、医保平台、教育系统等.NET Framework存量场景。本文深入解析Cook 阅读详情

相关推荐

Windows平台Frida+Python安卓APP逆向分析实战:从环境搭建到Hook脚本编写

动态插桩技术是软件逆向分析与安全测试领域的核心方法之一,它允许在不修改原始程序的情况下,实时监控和干预其运行时行为。其原理是通过向目标进程注入代码,拦截函数调用、读写内存数据,从而实现对程序内部逻辑的深度洞察。这项技术在移动安全、漏洞挖掘、协议分析和自动化测试中具有极高价值,尤其适用于安卓APP的运行时行为分析。Frida作为一款主流的动态插桩框架,以其跨平台、支持JavaScript脚本和强大的动态交互能力,成为逆向工程师和安全研究员的得力工具。结合Python进行自动化脚本开发,可以构建高效的分析工作流

weixin_34186128的博客 378

java2: HttpClient,实现登录,请求等操作,session保持

HttpClient,httpclient.jar包中的,我则喜欢折射成类似于dll以用的形式,知道在哪个namespace下 http://hc.apache.org/httpcomponents-client 可以从这里获取或得到些信息 实现的目标: 1.模拟登录 2.登录之后,模拟提交请求 关键点: 1.session状态保持 2.页面隐藏的属性获取 之前用...

weixin_30886233的博客 510

ASP.NET Web Forms Page模型深度解析:生命周期、ViewState与PostBack机制

ASP.NET Web Forms 的 Page 模型是微软早期为弥合前后端能力鸿沟而设计的服务端状态管理范式。其核心在于通过 HTTP 无状态协议模拟桌面应用体验,依托 Page 生命周期(PreInit→Render→Unload)、ViewState 自动状态持久化、PostBack 事件驱动机制,实现业务逻辑与 UI 渲染的深度耦合。该模型虽不适用于现代单页应用,但在政务、金融等强合规性遗留系统中仍具不可替代的工程价值——它降低了非前端开发者构建交互式表单的门槛,并保障了复杂表单级联、动态权限、服务

unixboy 489

HttpClient 模拟登陆,保持会话并进行后续操作

HttpClient 模拟登陆,保持会话并进行后续操作 2011-03-10 — Unmi Apache HttpClient 是很方便的 Java 开源的访问 HTTP 资源的组件。网站上的资源不总是能匿名访问的,很多都需要登陆后才能操作,且不说论坛里登陆后才能发言,就是某些稍显敏感的 XML 等信息也是登陆后才能获取到的。 没问题,HttpClient 能让你做到

sdbzwangdongdong的专栏 3716

JMeter实战指南:从核心功能到分布式压测的完整解决方案

性能测试是软件工程中确保系统稳定性和可扩展性的关键环节,其核心原理在于模拟真实用户行为对系统施加压力,以评估其在负载下的表现。JMeter作为一款开源的性能测试工具,因其支持多协议和高度可扩展性,在压力测试领域被广泛应用。通过合理配置线程组、采样器和监听器等组件,可以高效模拟高并发场景,发现系统瓶颈。在工程实践中,结合CSV数据文件配置实现参数化,以及使用正则表达式提取器处理动态数据,是构建可靠测试脚本的基础。这些技术对于电商、金融等需要处理高并发的应用场景尤为重要,能够帮助团队在系统上线前识别性能风险,优

weixin_30568591的博客 385

构建智能Selenium Grid调度器:基于Docker的负载感知与能力匹配实践

在分布式Web自动化测试与数据采集场景中,任务调度效率直接影响集群性能。传统轮询调度无法感知节点实际负载,导致资源利用不均。通过引入负载监控与智能调度原理,系统能够实时获取节点CPU、内存及会话数等指标,实现基于负载的动态任务分配。这种技术方案的核心价值在于提升集群资源利用率与任务执行稳定性,尤其适用于大规模并发测试和异构浏览器环境管理。本文聚焦于Docker化Selenium Grid的智能扩展,通过定制化Hub调度器,结合节点监控端点,实现了负载感知调度与精细化能力匹配,为构建高可用自动化基础设施提供实

weixin_34007886的博客 410

HttpClient 4.0 保持登录session 访问网页

session的保持是通过cookie来维持的,所以如果用户有勾选X天内免登录,这个session 就X天内一直有效,就是通过这个cookie来维护。如果没选X天内免登录,基本上就本次才能保持session,下次打开浏览器就要重新登录了。 所以在web安全里,黑客通过XSS,最终目的就是获取cookie,从免登录直接进入系统。 这次要讲的是,得到用户cookie后,免登录,用HttpCli...

huangzhir 809

API性能测试实战指南:从工具选型到瓶颈定位

在微服务架构和分布式系统成为主流的今天,接口的性能表现直接决定了系统的可用性与用户体验。性能测试作为软件质量保障的关键环节,其核心原理在于通过模拟真实用户并发行为,对系统施加可控压力,从而评估其在特定负载下的响应能力、稳定性和资源消耗。这项技术的核心价值在于,它能提前暴露系统瓶颈,为容量规划和架构优化提供数据支撑,是预防线上事故、保障服务SLA的重要手段。其典型应用场景包括新服务上线前的容量评估、日常峰值流量(如大促活动)的稳定性验证,以及系统重构或扩容后的性能回归验证。本文将聚焦于API性能测试这一具体领

weixin_30721077的博客 317

java 模拟登录 session_java2: HttpClient,实现登录,请求等操作,session保持

// 这里是为了获取页面上的hidden,用来提交的时候继续使用hidden=ParseTest.testTest(responseBody);System.out.println(csrfToken);System.out.println("Time now:"+newDate().toString());System.out.println("---------------3-post off...

weixin_35063099的博客 487

httpclient如何保持session会话模拟登录后的操作

NULL 博文链接:https://shaozhen.iteye.com/blog/946680

Fastjson2 2.0.26反序列化漏洞深度剖析:从原理到PoC构造

本文深度剖析了Fastjson2在2.0.26及之前版本中存在的反序列化漏洞。该漏洞允许攻击者通过构造包含恶意TemplatesImpl对象的JSONArray,并利用BadAttributeValueExpException触发,在反序列化过程中实现远程代码执行。文章从漏洞原理、PoC构造、利用链分析到防御建议,提供了全面的技术解读,帮助开发者和安全人员理解其危害并采取应对措施。

d3e4f的博客 1052

HttpClient模仿登陆并维持同一session请求(HttpClient4.3.X以上版本)

有时我们会碰到一种应用场景:就是在请求服务器前需要先验证用户合法,验证通过后,服务器保持保持同一sessionID与客户端交互,下面我模拟这种场景,用户首先发送post请求进行身份验证,通过后,继续发送上传文件的请求,服务器端需要保证只有登录成功的用户才能上传图片。工具类及测试代码如下: package zmx.httpclient.test; import java.io.File; imp

零度的博客专栏 2万+

亚马逊SP-API授权实战:从OAuth流程到Refresh Token获取

本文详细解析了亚马逊SP-API授权流程,从OAuth认证到Refresh Token获取的全过程。通过实战经验分享,帮助开发者快速掌握Marketplace Appstore、Website Workflow和自行授权三种方式,解决常见错误如MD5100和MD9999,并提供了安全存储Refresh Token的最佳实践。

weixin_30379531的博客 519

单点登录相关问题总结

1 概述      对于单点登录的机制和原理就不在这里赘述了。本文仅是对于单点登录问题研究所得的心得进行一下总结。想要实现单点登录可以采用的方式有很多种:1 利用成熟的软件框架(CAS,OPENSSO等)2自己建设单点登录框架(像sohu的单点登录)3 还有就是最简单的使用URL模拟登录。       但是各种方式都各有利弊。最主要的问题是大部分实现方式都需要对单点登录目标系统进行修改,或者在目...

weixin_33878457的博客 168

[前沿技术] AMD FSR 1.0源码解析:EASU算法实现细节与优化策略

本文深入解析了AMD FSR 1.0技术的核心——EASU(边缘自适应空间升频)算法。通过剖析其源码,详细阐述了EASU如何利用12-tap采样窗口、基于Lanczos滤波器的多项式近似以及自适应的边缘检测机制,在无需AI模型的情况下实现高质量图像放大。文章重点揭示了其极致的GPU优化策略,包括寄存器利用、采样优化和避免动态分支,为理解高性能图形算法提供了绝佳范例。

docker7nomad的博客 541

逆向实战:从x-mini签名到RPC调用,Frida动态分析小红书加密协议

本文通过实战案例,详细拆解了小红书App的加密协议逆向分析过程。从识别x-mini签名等关键参数入手,结合静态分析与Frida动态Hook技术,追踪到核心的RPC调用入口,并最终封装成可独立调用的RPC函数,为安全研究和协议理解提供了完整的技术路径。

moss5的博客 1036

Langfuse 详解:大模型应用可观测性与链路追踪实践

在大模型应用开发中,可观测性已成为工程落地的关键挑战。不同于传统后端依赖接口日志与错误码,LLM 应用链路涉及 Prompt 组装、模型调用、工具调用与上下文拼接,每个环节都会产生 Token 消耗与延迟。Langfuse 作为开源的可观测性平台,通过 Trace、Span、Generation 等模型化数据结构,为模型调用提供链路追踪与成本分析能力。它能记录完整的输入输出、Token 用量与调用耗时,解决普通日志难以回答的“模型看到了什么、为何答非所问”等痛点。借助 Docker Compose 自托管或

weixin_34341117的博客 1101

小华半导体HC32芯片开发使用说明

HC32F/L系列MCU在Keil MDK和IAR Workbench环境下通过工程样例进行软件开发。

小布的芯视角 5635

从零构建Java Web验证码:动态生成与安全校验实战

本文详细介绍了从零构建Java Web验证码系统的全过程,包括动态生成图片验证码、前端集成、服务端安全校验等核心环节。通过实战代码演示和高级安全增强方案,帮助开发者掌握验证码技术,有效防御暴力破解、垃圾注册等自动化攻击,提升Web应用安全性。

weixin_33749131的博客 361

【AI智能体】图像处理-生成营销 Banner 图

生成营销 Banner 图是一款用于制作营销图片的智能体,它可以根据指定的营销活动内容,快速生成活动 Banner 图片,降低活动运营成本、提高制图效率。

AI创变工坊,和1000万新个体创业者一起成长!愿大家都能跟上时代的洪流,不被社会淘汰,愿大家的生活工作收入都能具备竞争力! 1175

基于FISCO BCOS 部署可升级的 Solidity存证智能合约

本文介绍了基于FISCOBCOS平台的可升级Solidity存证智能合约实现方案。采用透明代理模式,包含逻辑合约、代理合约和管理合约三部分,支持业务逻辑升级而不影响存储数据。详细阐述了合约架构设计、Solidity代码实现、Go SDK交互流程以及完整的部署升级步骤。方案具有数据持久性、版本兼容性和生产就绪等特点,提供了权限控制、输入验证等安全机制,并包含监控管理工具。该实现为企业级区块链存证应用提供了可靠的基础架构,支持后续功能扩展和定制化开发。

分享AI、区块链技术及应用,未来已来 1516

JMeter元件深度解析:从脚本录制到性能洞察的进阶指南

性能测试是保障软件系统稳定性和可扩展性的关键环节,其核心在于模拟真实用户行为并精准评估系统在高负载下的表现。JMeter作为一款开源的负载测试工具,通过其模块化的元件体系,将复杂的用户场景拆解为可配置、可组合的测试单元,实现了从简单的接口请求到复杂业务流模拟的技术跨越。理解其元件的作用域、执行顺序及组合逻辑,是构建高效、可靠测试脚本的工程基础。本文聚焦于JMeter的线程组、逻辑控制器、后置处理器等核心元件,深入剖析其设计原理与实战配置,并结合**CSV数据文件设置**实现数据驱动测试,利用**正则表达式提

weixin_33722405的博客 373

ArcGIS与地理加权回归GWR【一】

因此,在实际问题研究中我们经常发现回归参数在不同地理位置上往往表现为不同,也就是说回归参数随地理位置变化,这时如果仍然采用全局空间回归模型(全局假设β是不会变得),得到的回归参数估计将是回归参数在整个研究区域内的平均值,如上所说某一个因素在ABC等不同的地理位置对房价的影响是不同的,假如采用全局空间回归模型,便忽略了数据的空间位置属性,只反映平均意义下因变量与自变量的相关关系,而不能有效反映回归关系的空间非平稳性的特征。当自变量为1个时,是一元线性回归,自变量为2个及以上时,称为多元线性回归。

JData_Engineer的博客 1376

Jmeter接口性能测试

1.jmeter简介 Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。开源,免费且具有了LoadRunner95%以上的功能,性价比极高。 2.jmeter特点 支持对多种服务类型进行测试;

guo_qingxia的博客 5072

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

从零搭建B站自动化任务机器人:robotbilibili架构设计与实践

在自动化测试与效率工具开发中,HTTP请求封装和定时任务调度是常见的工程基础。通过Python的requests库与APScheduler框架,开发者可以构建稳定、可观测的自动化任务系统。将这一思路应用于B站日常运营,即可形成robotbilibili类工具,用于每日签到、领取奖励、互动任务等重复操作。其核心在于通过Cookie管理维持登录态,利用统一HttpClient处理请求重试与异常日志,再以BaseTask基类抽象业务逻辑,结合Cron或Interval触发器实现定时执行。此类项目围绕工程结构、核心

weixin_34294649的博客 399

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

上一篇: 关闭流方法笔记
下一篇: 缩略图查看器
vortex331
博客等级 码龄16年 0粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值