使用cURL访问TP-Link Archer A10路由器POST请求失败求解决思路或示例
TP-Link Archer A10 cURL POST请求失败解决思路
- 校验会话有效性:TP-Link路由器管理接口的会话Cookie、CSRF Token均有短有效期,直接复用浏览器导出的过期参数会直接导致请求失败。需要先主动发起登录请求获取最新的有效Cookie和Token,再执行状态查询请求。
- 补全必填请求头:固件会校验
Referer、Origin字段是否为路由器管理页地址,缺失或数值不匹配会被安全策略拦截,导出的cURL如果没有这两个字段需要手动补充,和浏览器请求的头信息保持一致。 - 确认参数编码格式:POST请求要携带对应的Content-Type头,表单格式参数对应
Content-Type: application/x-www-form-urlencoded,JSON格式参数对应Content-Type: application/json,编码错误会导致服务端无法解析请求体。
可参考执行流程示例
示例中路由器管理IP默认使用
192.168.0.1,所有接口路径、参数值需要和你抓包获取的实际信息对齐
- 先执行登录请求,保存会话Cookie到本地文件
curl -c tplink_session.txt -X POST "http://192.168.0.1/你的抓包登录接口路径" \ -H "Referer: http://192.168.0.1/" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "username=admin&password=你抓包到的加密后密码参数"
- 携带有效Cookie和最新Token,发起连接状态查询请求
curl -b tplink_session.txt -X POST "http://192.168.0.1/你的抓包状态查询接口路径" \ -H "Referer: http://192.168.0.1/" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "token=你从登录响应/页面源码提取的最新Token&action=getWanStatus"
- 注意:部分新固件的密码会在前端做MD5/RSA加密后提交,不要直接传入明文密码,要和抓包获取的密码参数格式完全一致。
内容的提问来源于stack exchange,提问作者dilbert
相关产品推荐
相关产品推荐

