1.概述
wifi连接,扫描WiFi连接json序列化,http.get和http.post。
2.添加arduino提供的库
#include <ESP8266WiFi.h>//默认,加载WIFI头文件
#include <Arduino_JSON.h> //加载解析文件库
#include <ArduinoHttpClient.h> //加载http客户端库
3.代码
#include <ESP8266WiFi.h>//默认,加载WIFI头文件
#include <Arduino_JSON.h> //加载解析文件库
#include <ArduinoHttpClient.h> //加载http客户端库
WiFiClient espClient;
const char * ssid="wifi_name";//wifi名称
const chat * pwd="wifi_password";//WiFi 密码
HttpClient http = HttpClient(espClient,"www.baidu.com",80);//定义一个http客户端
String mes;
void setup(){
WiFi.begin(ssid.pwd);//连接wifi
if(WiFi.state()==3)
printf("连接成功");
delay(500);
int n=WiFi.scanNetworks();//扫描附近wifi
mes=JsonSerialization(n); //将扫描出的WiFi信息json序列化
printf(mes);//打印出扫描到的附近wifi
delay(100);
}
void loop(){
String contentType="application/json"; //请求内容格式
String url=""; //数据路径
httpm.get(url);//发送get请求,所有的东西都在url中
int mhttpCode = http.responseStatusCode();//阻塞响应,就是等待响应,一般10s超时跳过
String mresponse = http.responseBody(); //获得响应数据
JSONVar mtemp=JSON.parse(mresponse);//将字符串转成json格式
if (JSON.typeof(mtemp) == "undefined") {
Serial.println("Parsing input failed!");
return;
}
delay(1000);
String contentType="application/json";
String url="";
http.post(url, contentType, message); //可以发现post和get还是比较像的,数据和url不在一起
int httpCode = http.responseStatusCode();
String response = http.responseBody();
printf(response);
delay(1000);
}
4.解析
非常简单,基本上全部封装到位,只需要简单的调用填参数就行。http中的get和post本质没有区别,只不过在封装的时候考虑了标志,数据的位置,服务器的解析。