如图,现在的公司网络添加了认证机制,每天都需要手动登录一次,非常麻烦。网页端的认证归根到底就是发送请求,那我只需要写个脚本每天凌晨发送一次就可以了,一劳永逸。
脚本其实很简单:curl -s http://1.1.2.254:90/login -d "login_type=login&username=刘炜&password=%B9x%FB%1A%9D%5C"
,就是使用 curl 发送一个 post 请求模拟表单提交。
结果却一直登录失败:
登录失败
解决方案:
- 使用 postman 发送同样的请求:
-
查看 curl 使用文档,确认请求发送正确
-
使用 wireshark 查看请求差异
问题出来了,curl 发送的数据 乱码 了,难怪一直没成功。于是 google 之,按照 how-do-i-post-form-data-with-utf-8-encoding-by-using-curl 回答,为 curl 添加 -H "Content-Type: application/x-www-form-urlencoded; charset=utf-8"
参数就解决了。
最后,打开 taskschd.msc
添加一个定时任务即可:
用户记得选择 system
,这样任务运行的时候就不会出现黑窗口闪烁。
网友评论