php - 尝试通过 HTTP 传递登录凭据,需要解决方法
问题描述
致我的 Web 开发朋友:
我最近刚买了一个 GoGoGate2 车库门开启器,我正在尝试通过 HTTP 请求设置一个本地解决方法来触发车库门开启器的打开事件。(这适用于 IoT 中心)。我通过 IP 接入了我的 GoGoGate2,它把我带到了一个基于浏览器的 UI。我使用 WireShark 嗅探在 open 事件上触发的 HTTP 请求。我得出的结论是,可以通过以下 HTTP 请求打开和关闭门。
打开门: http://device-ip/isg/opendoor.php?numdoor=1&status=2
关门: http://device-ip/isg/opendoor.php?numdoor=1&status=0
好的,这很简单。当我从网络上的计算机或电话发出 HTTP 请求时,请求有效并且门完美地打开和关闭。但是,当我尝试从我的 Hubitat 触发 HTTP 请求时,该事件没有触发。我试图完全按照从 chrome 的隐身窗口中写入的方式使用我的 HTTP,并收到一条消息“限制访问”。显然,Hubitat 需要某种身份验证才能与 GoGoGate2 设备对话。
有什么方法可以接入我的 Hubitat 并使用它连接到我的 GoGoGate2 并让它保存登录凭据?这就是我从手机/电脑上做的事情。有没有办法从 Hubitat 本身做同样的事情?
对不起,如果这是一个菜鸟问题。
请注意,我也尝试使用该格式login:password@device-ip/isg/opendoor.php?numdoor=1&status=2
但没有成功
此外,不确定这是否有帮助,但在车库门开启器的身份验证过程中,通过执行 post 方法执行登录。从我嗅出的,这是相关的信息。
Request Method: POST
Request URI : /index.php/index.php
Connection: keep-alive\r\n
Upgrade-Insecure-Requests: 1\r\n
Content-Type: application/x-www-form-urlencoded\r\n
Form Item: "login" = "mylogin"
Key: login
Value: mylogin
Form Item: "pass" = "mypass"
Key: pass
Value: mypass
Form Item: "sesion-abierta" = "1"
Key: sesion-abierta
Value: 1
Form Item: "send-login" = "Sign In"
Key: send-login
Value: Sign In
我不确定如何通过 HTTP 请求传递发布信息,如果有人对如何执行此操作或解决方法有所了解?
提前致谢,
安迪
解决方案
您应该能够对这个请求使用 cURL:
curl -d "login=mylogin&pass=mypass&sesion-abierta=1&send-login=登录" -X POST http://www.requestdomain.com
推荐阅读
- android - 如何将使用 Angular v7 的 Web 应用程序迁移到移动 NativeScript 应用程序
- matlab - 如何修改一组向量以使其具有相同的大小?
- javascript - 检查用户是否可以访问网页?
- java - 为什么java枚举构造函数必须是私有的?
- haskell - 为什么这个 try catch 示例不起作用
- python - 在 keras 中正确使用 fit_generator
- html - 如何在不使用 Javascript 的情况下为 div id 分配一个变量?
- perl - sed - 在第一次正则表达式匹配后替换逗号
- java - 修剪字符串时前面出现意外字符
- c# - 由于拒绝访问,WinSCP 不会读取 FTP 服务器的文件