esp8266服务器网页设计,ESP8266 – ESP8266WebServer库 – uri

说明

使用该函数可获取客户端发送的HTTP请求行中的请求资源路径信息。

语法

server.uri()

参数

返回值

客户端请求行中的请求资源路径信息。(类型:字符串)

示例程序

关于本函数的具体使用方法,请参考以下代码,尤其是代码中高亮的语句部分。

当您将WiFi连接信息修改后并且将本示例程序上传ESP8266开发板后,开发板随即会自动连接WiFi。WiFi连接成功后,您将可以从串口监视器获取当前ESP8266开发板的IP。

接下来您可以通过浏览器地址栏输入ESP8266开发板的IP地址并键入回车(即向ESP8266开发板所建立的物联网服务器发送一个GET请求)。

浏览器请求发送之后,您就可以通过ESP8266开发板串口监视器看到浏览器发送的GET请求路径。我们在以下示例程序中使用了Serial.println(server.uri());语句来实现通过串口监视器输出浏览器请求资源路径。

Arduino

/**********************************************************************

项目名称/Project : 零基础入门学用物联网

程序名称/Program name : WebServer_demo_uri

团队/Team : 太极创客团队 / Taichi-Maker (www.taichi-maker.com)

作者/Author : Dapenson

日期/Date(YYYYMMDD) : 20200320

程序目的/Purpose :

使用8266作为WebServer,并用浏览器打开设备IP+80端口进行访问

-----------------------------------------------------------------------

本示例程序为太极创客团队制作的《零基础入门学用物联网》中示例程序。

该教程为对物联网开发感兴趣的朋友所设计和制作。如需了解更多该教程的信息,请参考以下网页:

http://www.taichi-maker.com/homepage/esp8266-nodemcu-iot/

***********************************************************************/

#include

#include

//设置WiFi接入信息

const char* ssid = "TaichiMaker";

const char* password = "xxxxxxxx";

ESP8266WebServer server(80);

//设置访问次数变量

int repeat = 0;

// 设置主页请求处理函数

void homepage() {

server.send(200, "text/plain", "test homepage");

Serial.println("用户访问了主页");

Serial.println(server.uri());

//达到访问次数限制之后停止服务器运行

if (++repeat == 50) {

Serial.println("Done");

server.stop();

}

}

// 设置处理404情况的函数'handleNotFound'

void handleNotFound() { // 当浏览器请求的网络资源无法在服务器找到时,

server.send(404, "text/plain", "404: Not found"); // NodeMCU将调用此函数。

Serial.print("当前请求路径 :");

Serial.print(WiFi.localIP());

Serial.println(server.uri()); //串口输出当前客户端的请求路径

Serial.print("当前请求方法 :");

Serial.println(server.method()); //串口输出当前客户端的请求方法

}

void setup(void) {

//初始化串口

Serial.begin(115200);

Serial.println("");

//初始化网络

WiFi.mode(WIFI_STA);

WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) {

delay(500);

Serial.print(".");

}

Serial.println("");

Serial.print("IP Address: ");

Serial.println(WiFi.localIP());

//初始化WebServer

server.begin();

server.on("/", homepage);

server.onNotFound(handleNotFound);

Serial.println("HTTP server started");

}

void loop(void) {

//监听客户请求并处理

server.handleClient();

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

/**********************************************************************

项目名称/Project          : 零基础入门学用物联网

程序名称/Program name     : WebServer_demo_uri

团队/Team                : 太极创客团队 / Taichi-Maker (www.taichi-maker.com)

作者/Author              : Dapenson

日期/Date(YYYYMMDD)     : 20200320

程序目的/Purpose          :

使用8266作为WebServer,并用浏览器打开设备IP+80端口进行访问

-----------------------------------------------------------------------

本示例程序为太极创客团队制作的《零基础入门学用物联网》中示例程序。

该教程为对物联网开发感兴趣的朋友所设计和制作。如需了解更多该教程的信息,请参考以下网页:

http://www.taichi-maker.com/homepage/esp8266-nodemcu-iot/

***********************************************************************/

#include

#include

//设置WiFi接入信息

constchar*ssid="TaichiMaker";

constchar*password="xxxxxxxx";

ESP8266WebServerserver(80);

//设置访问次数变量

intrepeat=0;

// 设置主页请求处理函数

voidhomepage(){

server.send(200,"text/plain","test homepage");

Serial.println("用户访问了主页");

Serial.println(server.uri());

//达到访问次数限制之后停止服务器运行

if(++repeat==50){

Serial.println("Done");

server.stop();

}

}

// 设置处理404情况的函数'handleNotFound'

voidhandleNotFound(){// 当浏览器请求的网络资源无法在服务器找到时,

server.send(404,"text/plain","404: Not found");// NodeMCU将调用此函数。

Serial.print("当前请求路径 :");

Serial.print(WiFi.localIP());

Serial.println(server.uri());//串口输出当前客户端的请求路径

Serial.print("当前请求方法 :");

Serial.println(server.method());//串口输出当前客户端的请求方法

}

voidsetup(void){

//初始化串口

Serial.begin(115200);

Serial.println("");

//初始化网络

WiFi.mode(WIFI_STA);

WiFi.begin(ssid,password);

while(WiFi.status()!=WL_CONNECTED){

delay(500);

Serial.print(".");

}

Serial.println("");

Serial.print("IP Address: ");

Serial.println(WiFi.localIP());

//初始化WebServer

server.begin();

server.on("/",homepage);

server.onNotFound(handleNotFound);

Serial.println("HTTP server started");

}

voidloop(void){

//监听客户请求并处理

server.handleClient();

}

相关内容

– uri – 获取请求路径

– method – 获取请求方法

以下是使用ESP8266模块搭建Web服务器的简单示例代码: ```c #include <ESP8266WiFi.h> #include <WiFiClient.h> #include <ESP8266WebServer.h> // Replace with your network credentials const char* ssid = "your_SSID"; const char* password = "your_PASSWORD"; ESP8266WebServer server(80); void handleRoot() { server.send(200, "text/plain", "Hello from ESP8266!"); } void handleNotFound(){ String message = "File Not Found\n\n"; message += "URI: "; message += server.uri(); message += "\nMethod: "; message += (server.method() == HTTP_GET)?"GET":"POST"; message += "\nArguments: "; message += server.args(); message += "\n"; for (uint8_t i=0; i<server.args(); i++){ message += " " + server.argName(i) + ": " + server.arg(i) + "\n"; } server.send(404, "text/plain", message); } void setup() { Serial.begin(115200); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Connecting to WiFi..."); } Serial.println("Connected to WiFi"); server.on("/", handleRoot); server.onNotFound(handleNotFound); server.begin(); Serial.println("HTTP server started"); } void loop() { server.handleClient(); } ``` 在此示例中,我们使用ESP8266WebServer来创建一个Web服务器。在setup()函数中,我们连接到WiFi网络并启动服务器。在handleRoot()函数中,我们定义了服务器的根路由,并用“Hello from ESP8266!”作为响应。在handleNotFound()函数中,我们定义了服务器的404路由,并在路由不存在时返回响应。 在loop()函数中,服务器将处理传入的客户端请求。 在使用此代码之前,请确保已在Arduino IDE中安装了ESP8266
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值