我正在努力使用ESP8266客户端登录我的Web服务器(该服务器在本地网络的PC主机中运行)。 ESP必须登录才能查看天气,它必须激活与否连接的传感器。用户可以通过登录门户来更改传感器激活状态(开/关)。因此,esp8266必须始终意识到这一点。我想到的是,ESP8266必须像其他浏览器客户端一样登录。首先,它应通过以下代码进入登录页面:
client.print(String("GET /public_html/login.php") + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"Connection: close\r\n" +
"\r\n"
);
然后我应该将用户名和密码发布到服务器。通过浏览器登录的普通人类用户通过以下表单登录:
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">
<div class="form-group <?php echo (!empty($username_err)) ? 'has-error' : ''; ?>">
<label>username</label>
<input type="text" name="username" class="form-control" value="<?php echo $username; >">
</div>
<div class="form-group <?php echo (!empty($password_err)) ? 'has-error' : ''; ?>">
<label>password</label>
<input type="password" name="password" class="form-control">
</div>
<div class="form-group">
<input type="submit" class="btn btn-primary" value="Login">
</div>
</form>
我如何做与ESP8266相同的事情?
首先,您必须在服务器上定义一个发布路由,该路由可以侦听esp发布请求。您可以使用包含加密凭据的post方法从esp发送一个json字符串。根据服务器端收到的凭据,您可以决定是否对设备进行身份验证,并将相同结果返回给设备。