,Sunbet www.9cx.net是Sunbet娱乐的官方网站。申博用20(多年的时间),『诠释了高品质』、「高效率」、高信誉。<开放的>Sunbet、Sunbet等业务备受申博用户的追捧。
#IT明星不是梦#wemos D1 arduino物联网开发板应用笔记9-HTTP Client编程
前言
本节,我们开始学习wemos D1的HTTP Client编程,并实现通过HTTP GET方式获取天气信息的功能。
一、<基础知>识
1.HTTP简介
1.1 HTTP概要
HTTP是Hypertext Transfer Protocol的缩写,Hypertext(超文本)是可以根据客户端{请求}而跳转的结构化信息。HTTP协议的{请求}及相应方式设计如下图所示:
从图中可以看出,服务器端响应客户端{请求}后立刻断开连接,连接不会维持很久,即使同一个客户端再次发送{请求},服务端也无法辨认出是否是原先的那个客户端发出的{请求},会以相同的方式处理新的{请求}。
1.2 HTTP{请求}
HTTP{请求}是客户端向服务端发送{请求}消息,{请求}消息可以分 为[{请求}行、消息头、消息体三个部分;{请求}行含有{请求}方式信息(GET/POST等),GET用于{请求}数据,POST主要用于传输数据;消息头包括一些访问的域名、用户代理、Cookie等信息;消息体就是{请求}的数据,仅在POST方式{请求}时候{输入}。
1.3 HTTP响应
HTTP响应是指服务端根据客户端发送的{请求}中的动作要求做出具体的动作,然后将结果返回给客户端。 HTTP响应消息可以分 为[状态行、头信息、消息体三个部分;状态行含有{请求}的状态信息,这是其与{请求}消息相比最大的区别。
2.ESP8266HTTPClient函数说明
在Wemos D1实际开发中,《直接》使用ESP8266HTTPClient库提供的函数即可。
http常见响应处理函数如下:
二、实例(运)行
1.Http GET方式获取上海天气
1.1 简介
获取天气接口使用sojson提供的免费接口:http://t.weather.sojson.com/api/weather/city/city_code,本文访问上海天气,‘需’要填写上海city_code, 为[101021300,不同城市码可以百度搜(索获取)。
首先我们在浏览器直接{输入}http://t.weather.sojson.com/api/weather/city/101021300 ,效果如下:
1.2 wemos D1程序
接着我们开始使用wemos D1来获取天气,代码如下:
#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
char* ssid = "sand";
char* passwd = "12345678";
const uint16_t port = 80;
const char * host = "http://t.weather.sojson.com/api/weather/city/101021300";
HTTPClient http;
void setup() {
//在这里加入初始化相关代码,只(运)行一次:
Serial.begin(115200);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, passwd);
Serial.println("connecting to router... ");
//等待wifi连接成功
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
Serial.println("");
Serial.print("WiFi connected, local IP address:");
Serial.println(WiFi.localIP());
Serial.print("[HTTP] begin...\n");
http.begin(host); //HTTP
delay(500);
}
void loop() {
if (WiFi.status() == WL_CONNECTED)
{
// start connection and send HTTP header
int httpCode = http.GET();
if(httpCode) {
// HTTP header has been send and Server response header has been handled
Serial.printf("[HTTP] GET... code: %d\n", httpCode);
// file found at server
if(httpCode == 200) {
String payload = http.getString();
Serial.println(payload);
}
} else {
Serial.print("[HTTP] GET... failed, no connection or no HTTP server\n");
}
}
delay(5000);
}
1.3 (运)行
代码编译后上传到wemos D1,arduino自带串口工具显示如下:
<从上图可知>,wemos D1已经完成了发送HTTP{请求}获取天气情况,但是显示数据存在部分“乱码”,这个是由于编码导致,接下来我们使用secureCRT串口工具,并设置显示编码方式 为[UTF-8。
打开串口,显示如下:
修改编码方式后,显示正常,至此我们实现了通过wemos D1发送HTTP GET获取天气信息。
三、结语
如您在使用过程中有任<何>问题,请加QQ群进一步交流,也可以github提Issue。
QQ交流群:906015840 (备注:物联网项目交流)
获取源码:“关注”公众号,回复wemos即可
一叶孤沙出品:一沙一世界,一叶一菩提
0
“收藏”
网友评论
12条评论USDT充值接口
回复USDT支付平台菜包钱包(caibao.it)是使用TRC-20协议的Usdt第三方支付平台。免费提供Usdt钱包支付接口、Usdt自动充值接口、Usdt无需实名寄售回收。菜包Usdt钱包一键生成Usdt钱包、一键调用API接口、一键无实名出售Usdt。我觉得文笔有点嫩
欧博备用网址
回复故事线很完整
新2足球网址(www.hg9988.vip)
回复@欧博备用网址 据最新数据统计,4月19日至23日当周,地方债设计刊行规模已超2,600亿元,本周地方债设计刊行规模创了今年以来单周新高。666高级网文
环球UG
回复控制了这个排场很好嘛
以太坊开奖网
回复欧博app下载www.allbetgame.us欢迎进入欧博app下载网站,欧博app下载网站是欧博官方网站。欧博app下载网站开放欧博注册、欧博代理、欧博电脑客户端、欧博app下载等业务。实力碾压别的文
买usdt有没有手续费
回复前两天,久未公开露面的王祖贤上了热搜。好文不用推广
万利逆商
回复欧博会员开户欢迎进入欧博会员开户(www.aLLbetgame.us),欧博官网是欧博集团的官方网站。欧博官网开放Allbet注册、Allbe代理、Allbet电脑客户端、Allbet手机版下载等业务。居家必备的神仙网站!
皇冠即时比分
回复「菜」宝{钱包}(caibao.it)是使用TRC-20协议的Usdt第三方支付平台,Usdt收款平台、Usdt(自动充提平台)、usdt“跑分平台”。(免费)提供入金通道、Usdt{钱包}支付【接口】、Usdt 自动充[值【接口】、Usdt无需实名寄售回收。菜宝Usdt{钱包}一键生成Usdt{钱包}、(“一键”调用)API【接口】、一键无实名出售Usdt。是不是还可以?
皇冠注册平台
回复普陀山能被成为海天佛国,就是由于这里是观世音菩萨的道场。通俗人对观音菩萨的熟悉水平甚至交比来佛祖还要高,加上观音菩萨尚有送子观音的称快来呀快来呀
trc20交易所(www.usdt8.vip)
回复新2平台出租(www.22223388.com)
回复皇冠最新线路(www.22223388.com)
回复