您现在的位置是:探索 >>正文

易语言POST开发的一个内网加班单

探索6人已围观

简介公司行政部那帮人每个月都要手动填加班单,Excel 表格发来发去,最后汇总到 HR 那边经常对不上号。我看了眼他们那个流程,无非就是登录内部 OA,点开加班申请,选日期、填时长、写理由、提交。这套动作 ...

公司行政部那帮人每个月都要手动填加班单,易语言Excel 表格发来发去,个内最后汇总到 HR 那边经常对不上号。网加我看了眼他们那个流程,班单无非就是易语言登录内部 OA,点开加班申请,个内选日期、网加填时长、班单写理由、易语言提交。个内这套动作重复三十遍,网加搁谁都得疯。班单

我决定用易语言写个工具,易语言直接 POST 到 OA 接口,个内把加班数据批量灌进去。网加选易语言没别的原因——公司内网老机器上只有这个,装个 Python 还得审批。易语言的 HTTP 模块虽然糙,但够用。

抓包摸清接口结构

先拿 Fiddler 抓了一次正常提交的请求。OA 是 Java 写的,接口地址是 /oa/attendance/overtime/save,POST 提交,Content-Type 是 application/x-www-form-urlencoded。请求体里带了这几个关键字段:

 userId=1024 overtimeDate=2024-03-15 startTime=18:30 endTime=21:00 reason=项目上线支持 token=eyJhbGciOiJIUzI1NiJ9... 

token 是登录后存在 cookie 里的 JWT,有效期两小时。这意味着工具不能一次性跑完所有数据,得先模拟登录拿 token,再带着 token 去提交。易语言的 网页_访问 命令可以保持 cookie,但 JWT 在响应头里,得手动提取。

登录环节的坑

登录接口是 /oa/login,密码在前端做了 MD5 加盐。我懒得逆向前端 JS,直接用了个笨办法:用易语言的 取数据摘要 算 MD5,盐值从抓包结果里硬编码进去。反正内网工具,不讲究。

登录成功后,响应头里有个 Authorization: Bearer xxx,用 文本_取出中间文本 把 token 抠出来存变量。这里有个细节——token 字符串里可能包含 = 和 +,直接拼到 POST 体里会被截断,得用 编码_URL编码 处理一下。

批量提交的逻辑

加班数据我放在一个 txt 文件里,每行格式是 日期,开始时间,结束时间,事由。易语言读入文件后按行分割,循环构造 POST 数据。每次提交间隔 500 毫秒,太快了 OA 会返回 429。

代码大概长这样:

 .版本 2 .局部变量 行数组, 文本型, , "0" .局部变量 i, 整数型 .局部变量 提交数据, 文本型 行数组 = 分割文本 (读入文件 (“加班数据.txt”), #换行符, ) .计次循环首 (取数组成员数 (行数组), i) 提交数据 = “userId=1024&overtimeDate=” + 取文本左边 (行数组[i], 10) 提交数据 = 提交数据 + “&startTime=” + 取文本中间 (行数组[i], 12, 5) 提交数据 = 提交数据 + “&endTime=” + 取文本中间 (行数组[i], 18, 5) 提交数据 = 提交数据 + “&reason=” + 编码_URL编码 (取文本右边 (行数组[i], 取文本长度 (行数组[i]) - 23)) 提交数据 = 提交数据 + “&token=” + 编码_URL编码 (全局_token) 网页_访问 (“http://oa.internal/oa/attendance/overtime/save”, 1, 提交数据, , , , , , , , ) 延时 (500) .计次循环尾 () 

跑完三十条数据,花了不到二十秒。行政部的人看傻了,问我是不是黑了 OA。我说没有,就是替你们点了三十次提交按钮。

事后处理

工具跑完得检查一下有没有失败的。OA 返回的 JSON 里 code=0 表示成功,其他都是异常。我把失败的记录写回一个 失败.txt,下次单独重跑。另外 token 过期的问题,加了个判断——如果连续三次返回 401,就重新登录一次。

这工具后来被行政部要走了,我加了点界面,让他们自己选文件、填账号密码。易语言做窗口确实方便,拖几个组件就完事。唯一的问题是杀毒软件会报毒,得加白名单。内网环境嘛,睁只眼闭只眼。

现在他们每个月月底跑一次,五分钟搞定。HR 那边再也没说过数据对不上。有时候解决问题不需要多高级的技术,把重复劳动自动化掉,哪怕用最土的工具,效果也是立竿见影的。

Tags:

相关文章

  • 辽宁防静电pet透明高温胶带官网

    探索

    辽宁的电子厂车间里,PET高温胶带的消耗量比东北人冬天囤的白菜还实在。这种透明防静电胶带,看着跟普通胶带没两样,但贴上去的瞬间就知道区别——它不会在电路板上留下静电电荷,也不会在回流焊炉里蜷缩变形。官 ...

    【探索】

    阅读更多
  • cp站网址

    探索

    cp站网址这事儿,说白了就是同人圈子的地下交通图。我见过最狠的一个,域名换了七次,每次都在微博简介里留个暗号,老粉一看就懂,新粉得翻三天聊天记录才能摸到门。 这类网站活得像个特工。备案是不可能备案的, ...

    【探索】

    阅读更多
  • 2022境外宗教势力渗透

    探索

    2022年春天,我在某沿海城市的一座教堂里,亲眼看见一位操着流利普通话的外国牧师,用投影仪展示着一张标注着“宗教自由指数”的中国地图。红色区域密密麻麻,他称之为“未得之地”。台下坐着二十来个年轻人,有 ...

    【探索】

    阅读更多


友情链接