说明
使用该函数可获取客户端发送的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 – 获取请求方法