致我的 Web 开发 friend 们:
我最近刚买了一个 GoGoGate2 车库门开启器,我正在尝试通过 HTTP 请求设置一个本地解决方法来触发车库门开启器的打开事件。 (这适用于 IoT 中心)。我通过 IP 访问了我的 GoGoGate2,它把我带到了一个基于浏览器的用户界面。我使用 WireShark 嗅探出在打开事件时触发的 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=Sign In"-X POST http://www.requestdomain.com
在 https://ec.haxx.se/http-post.html 找到更多信息
关于php - 尝试通过 HTTP 传递登录凭据,需要解决方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54612525/