2

我正在使用 ESP8266 wifi 模块从我的微控制器在网络上发送/接收数据包。特别是我一直在使用

AT+CIPSTART="TCP",'xxx.xxx.xxx.xxx,80\r\n

命令来选择我将数据包发送到哪个端点。它目前适用于静态 IP(或具有静态 IP 的域);但我还没有找到说明这如何与虚拟 IP(或具有虚拟 IP 的域)一起使用的资源。

我的网站托管在共享服务器上,但每次执行此 CIPSTART 命令(使用 IP 或域)时,响应都是通用共享服务器 IP 地址页面。

如何让我的 ESP8266 连接到托管在具有虚拟地址的共享服务器上的特定站点?

我读过的资源:

4

2 回答 2

1

您应该可以使用域名,因为 DNS 会自动为您解析 IP。请注意长度值。您应该在 GET 字符串的实际长度中添加至少 4 个字符,以考虑回车/换行:

AT+CIPSTART="TCP","api.thingspeak.com",80   
AT+CIPSEND=80
GET http://api.thingspeak.com/update?key=PBG7CKSZU6FU3M4C&field1=5 HTTP/1.0
于 2015-10-06T00:08:09.337 回答
0

要连接到虚拟主机,您通常使用 . 连接到其 IP 和端口AT+CIPSTART

AT+CIPSTART="TCP","xxx.xxx.xxx.xxx",80\r\n

重要的部分是当您使用AT+CIPSEND.
为了让 Web 服务器区分不同的虚拟主机,您需要在请求中添加HostHTTP 标头

GET /request.php?key=value HTTP/1.1\r\n
Host: www.example.com\r\n
\r\n

有了这个,Web 服务器应该从正确的主机返回,而不是从主机提供商返回的默认主机。

于 2015-10-05T09:51:21.233 回答