0

这个问题一定是重复的,但我找不到答案。使用该ESP8266WebServer库,有一种uri()方法可以获取 uri。所以在示例中:http://example.com/index,它会抓住/index,但我也想获得example.com. 有没有办法呢?

4

1 回答 1

0

http(s)://host:port部分不发送到服务器。客户端使用主机名解析 IP 地址,然后客户端连接到指定端口上的 IP 地址。

但是 HTTP 1.1 在对 HTTP 服务器的请求中有一个强制性的 Host 标头。

ESP8266 Arduino ESP8266WebServer 库使当前请求的标头可在 ESP8266WebServer 实例上访问。要获取 Host 标头,有一种hostHeader()方法。

例子:

void handleRoot() {
  Serial.print("The Host: header value: ");
  Serial.println(server.hostHeader());
  server.send(200, "text/plain", "hello from esp8266!\r\n");
}

ESP8266WebServer 的文档在这里

于 2021-09-11T15:14:51.750 回答