使用语言: | Arduino | 开发板: | Node Mcu ESP8266 CH340 | 编辑器: | Visual Studio Code |
问题描述:
在使用Arduino开发过程中,有些时候,需要请求网络的资源,比如通过get方式访问获取网页的html源码;
解决方式:
Arduino提供了ESP8266HTTPClient.h库,便于我们使用开发板进行http请求;
因为需要开发板联网之后,才能进行网络访问请求,所以需要引用下面的两个库文件;
#include <ESP8266WiFi.h> //用于开发板联网;
#include <ESP8266HTTPClient.h> //用于开发板进行http请求;
编写代码:
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
//使用esp8266,进行htpp访问请求,并且返回网页的源码
//设定WiFi的名称和密码;
const char *ssid="你的WiFi名称";
const char *password="你的WiFi密码";
void setup() {
//定义串口信息
Serial.begin(9600);
//让开发板连接wifi网络
WiFi.mode(WIFI_STA);
WiFi.softAP(ssid,password);
while (WiFi.status() != WL_CONNECTED)
{
delay(200);
Serial.print(".");
}
Serial.println();
//当联网时候则输出开发板的ip地址;
Serial.println(WiFi.localIP());
//启动函数进行http请求 void定义的函数,是没有返回值的;
esp8266http();
}
void esp8266http(){
//新建有一个HTTPClient的对象httpClient
HTTPClient httpClient;
//设定请求的url;
httpClient.begin("http://192.168.31.88/");
//此处我是访问局域网的一个web地址,请根据实际情况对上面的链接进行更换
//设定get请求,并且返回请求码;
int httpCode = httpClient.GET();
Serial.print(httpCode);
//设定浏览器ua
httpClient.setUserAgent("Mozilla/5.0 (Windows NT 11.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.82 Safari/537.36");
//如果get请求返回HTTP_CODE_OK,则代表和服务器请求成功;
if (httpCode==HTTP_CODE_OK){
//获取请求url的浏览器html代码;
String resp =httpClient.getString();
//向串口输出html代码
Serial.println(resp);
}
//结束请求
httpClient.end();
}
void loop() {
}
实现效果:
文章结尾:
如果本文的解决方案,对您有帮助的话,请不要吝啬你的赞,谢谢!
|