试图通过HTTP登录凭据,需要的解决方法

问题描述 投票:1回答:2

我的网络发展的朋友:

我最近刚买了GoGoGate2车库门开启器,和我试图建立通过HTTP请求当地解决方法烧制车库门开启器的打开事件。 (这是用于与轮毂的IoT使用)。我挖掘到通过IP我GoGoGate2,它给我带来了一个基于浏览器的UI。我使用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本身做同样的事情?

很抱歉,如果这是一个noob问题。

请注意,我已经使用格式login:password@device-ip/isg/opendoor.php?numdoor=1&status=2with没有成功也尝试

另外,不知道这是援助,但在上车库门开启器的认证过程中,登录由执行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请求传递的信息后,如果任何人有关于如何做到这一点一些见解,或周围的工作?

提前致谢,

安迪

php http post get iot
2个回答
0
投票

您应该能够使用卷曲此请求:

卷曲-d “登录名= mylogin&传=为mypass&使sesion-abierta = 1&发送登录=登录” -X POST http://www.requestdomain.com

找到https://ec.haxx.se/http-post.html更多信息


0
投票

由于登录是基于表单的,它很可能将证书存储为饼干。如果这些cookie寿命长,那么你也许可以连接到API时重新使用它们。是否可以指定在HTTP请求中的cookie?否则,是有可能执行从设备的多个请求的序列 - 一个POST认证则操作。

或者,你可能拥有进行登录和内部的后续请求在本地网络上你自己的代理。这可以通过编程来完成在PHP卷曲。这里有一个例子:http://blog.andyhunt.info/2011/12/21/using-php-and-curl-to-log-in-to-a-website/

确保使用的CURLOPT_COOKIEJAR选项的身份验证cookie从登录形式存储,使他们能够包括在后续请求。

© www.soinside.com 2019 - 2024. All rights reserved.