一、ESP8266简介

  ESP8266 是深圳安信可科技有限公司开发的基于乐鑫ESP8266的超低功耗的UART-WIFI模块的模组,可以方便进行二次元开发,接入云端服务,实现手机3/4G全球随时随地的控制,加速产品原型设计。

  核心模块处理器ESP8266在较小尺寸中继承了业界领先的Tensilical106超低功耗32位微型MCU,带有16位精简模式,支持RTOS(实时操作系统,指当外界事件或者数据变化时候能够以足够快的速度处理),集成WIFI/MAC/BB/RF/PA/LAN,板载天线。支持IEEE802.11b/g/n协议,完整的TCP/IP协议。

二、开发环境

  开发环境采用Arduino IDE for ESP8266 采用 Arduino 语法进行编程设计。

三、编程

 1. HTTP相关知识

    HTTP是一套计算机网络通讯规则。下来主要介绍一下HTTP消息格式。详细HTTP请求请戳链接。

    

    HTTP请求数据格式:

    当浏览器发送请求是,向服务器发送了一个数据块,也就是请求信息,其中信息由三部分组成。

    1. 请求方法 URI协议/版本

    2. 请求头(Request Header)

    3. 请求正文

    eg.

1 GET/sample.jspHTTP/1.1
2 Accept:image/gif.image/jpeg,*/*
3 Accept-Language:zh-cn
4 Connection:Keep-Alive
5 Host:localhost
6 User-Agent:Mozila/4.0(compatible;MSIE5.01;Window NT5.0)
7 Accept-Encoding:gzip,deflate
8
9 username=jinqiao&password=1234

    

    HTTP 请求应答格式:

    当服务器收到浏览器的请求时,会向客户端返回数据,数据主要由三部分组成

    1. 协议状态 版绷带吗描述

    2. 响应头(ResponseHeader)

    3. 响应正文

    eg.

    

1 HTTP/1.1 200 OK
2 Server:Apache Tomcat/5.0.12
3 Date:Mon,6Oct2003 13:23:42 GMT
4 Content-Length:112
5
6 data(返回数据)

    

 2. ESP8266 编程

   下附esp8266模块发送请求的代码

 1 /*
 2  *  HTTP over TLS (HTTPS) example sketch
 3  *
 4  *  This example demonstrates how to use
 5  *  WiFiClientSecure class to access HTTPS API.
 6  *  We fetch and display the status of
 7  *  esp8266/Arduino project continous integration
 8  *  build.
 9  *
10  *  Created by Ivan Grokhotkov, 2015.
11  *  This example is in public domain.
12  */
13
14 #include <ESP8266WiFi.h>
15 #include <WiFiClientSecure.h>
16
17 const char* ssid = "zlei";
18 const char* password = "18829237005";
19
20 const char* host = "15r34407v7.imwork.net"; //需要访问的域名
21 const int httpsPort = 37170;  // 需要访问的端口
22 const String url = "/test";   // 需要访问的地址
23
24 void setup() {
25   Serial.begin(9600);
26   Serial.println();
27   Serial.print("connecting to ");
28   Serial.println(ssid);
29   WiFi.begin(ssid, password); // 连接WIFI
30   while (WiFi.status() != WL_CONNECTED) {
31     delay(500);
32     Serial.print(".");
33   }
34   Serial.println("");
35   Serial.println("WiFi connected");
36   Serial.println("IP address: ");
37   Serial.println(WiFi.localIP()); // 显示WIFI地址
38 }
39
40 void loop() {
41   Serial.print("connecting to ");
42   Serial.println(host);
43
44   WiFiClient client;
45
46   /**
47    * 测试是否正常连接
48    */
49   if (!client.connect(host, httpsPort)) {
50     Serial.println("connection failed");
51     return;
52   }
53   delay(10);
54
55   String postRequest =(String)("GET ") + url + "/ HTTP/1.1\r\n" +
56     "Content-Type: text/html;charset=utf-8\r\n" +
57     "Host: " + host + "\r\n" +
58     "User-Agent: BuildFailureDetectorESP8266\r\n" +
59     "Connection: Keep Alive\r\n\r\n";
60   Serial.println(postRequest);
61   client.print(postRequest);  // 发送HTTP请求
62
63   /**
64    * 展示返回的所有信息
65    */
66   String line = client.readStringUntil('\n');
67   while(line.length() != 0){
68     Serial.println(line);
69     line = client.readStringUntil('\n');
70   }
71   Serial.println(line);
72   client.stop();
73   delay(3000);
74 }

  总结: 通过 WiFiClient 的 connect 方法来进行WIFI链接 通过print方法来发送HTTP请求, 以及readStringUntil('\n') 来读取服务器端返回的数据。

  其中测试结果如图所示:

  

  如有错误,欢迎指正。

    

转载于:https://www.cnblogs.com/zleiblogs/p/7126106.html

【ESP8266】发送HTTP请求相关推荐

  1. 【ESP8266】NONOS SDK开发,发送HTTP请求

    网络方面不是很懂,可能描述有一点不准确. 主要是通过ESP8266,在NONOS-SDK环境下,用URL地址,发出HTTP请求,接收并处理信息. 假设已经大致了解厂家提供的SDK,以及Eclipse开 ...

  2. ajax发送动态字符传,如何发送ajax请求文件与其他字符串的变量?

    我想创建ajax调用并发送数据与文件和其他变量,我也使用django,如果它的帮助.如何发送ajax请求文件与其他字符串的变量? 我尝试: js文件: $("#save-new-reques ...

  3. jquery发送put请求_浅谈GET,POST,PUT发送请求

    一般我们在浏览器的地址栏输入网址回车后,发送的是GET请求 当用表单提交时(最普遍的是用户登录),我们可以指定是GET还是POST请求,这里需要注意的是有的浏览器并不支持PUT请求,那后台restfu ...

  4. 使用rest_framework写api接口的一些注意事项(axios发送ajax请求)

    1. 类继承GenericAPIView,定义queryset 印象深刻的事: 由于原来对于继承关系不太清楚,写接口 APIView/泛指GenericAPIView不太关注queryset 没有设置 ...

  5. Vue之axios发送Ajax请求

    2.10 axios发送ajax请求 axios github 2.10.1 准备工程 创建一个django工程,例如 login.创建完成之后,再创建一个子应用,例如users.最后再设置一下模板文 ...

  6. 爬虫之requests模块发送post请求

    爬虫之requests模块发送post请求 思考:哪些地方我们会用到POST请求? 登录注册( 在web工程师看来POST 比 GET 更安全,url地址中不会暴露用户的账号密码等信息) 需要传输大文 ...

  7. java post xmll_HttpClient发送Post请求,内容格式为xml,并获取响应内容

    ChannelDistributor.xml 内容如下: yisou abcd1234 10010000 00 1).HttpClient发送Post请求,内容格式为xml,并获取响应内容 impor ...

  8. PHP爬取post网页数据,php curl发送post请求爬取webService接口数据简单实例

    header('Content-Type: text/html;charset=utf-8'); /** * 使用curl发送post请求 * @param $url * @param string ...

  9. python写页面发送post请求_Python模拟浏览器向CSDN发送post请求的方法,POST

    目录 1.发送get请求的方法 import requests import json def GET(url): #get请求 req = requests.get(url) #输出状态码 prin ...

最新文章

  1. visual studio可以开发app吗_个人能开发App软件吗?从想法到App开发完成,我只用了三天...
  2. DataGridView控件 1129
  3. web.config中配置数据库连接的两种方式
  4. Linux项目日报,1Password推出Linux版本 现已进入公开预览阶段
  5. 手机为什么取消了内存卡?
  6. pcb文件转成原理图_初学PCB设计,到底该学习哪款软件?
  7. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_6-3.微信网站扫码支付介绍...
  8. jeesite实战(三十六)——非status的其他属性In条件查询
  9. java 毫秒转分钟和秒_将毫秒转换为分钟和秒的java程序
  10. Word打开和关闭速度均很慢的解决方法
  11. 招聘简历管理系统的简单设计
  12. PSD的网页模版PS切图到网页生成全攻略
  13. 全球与中国湿疹护理产品市场现状及未来发展趋势(2022)
  14. python2048游戏撤销上一部功能怎么实现_python 实现 2048 游戏 (一)
  15. 电压和电流反馈判别及例子,绝对让你通透,其实也没有那么难,一次就看懂!从此终于搞懂了电压反馈和电流反馈!
  16. 算法设计与分析(十四)
  17. 高级Spring之Scope 详解
  18. 数学基础(1)~ 概率论基础知识
  19. oppo A57(全网通)一键救砖,轻松刷回官方系统。
  20. UCI数据集数据的分析 ——葡萄酒数据

热门文章

  1. java文件下载代码_Java代码实现文件下载
  2. Jupyter运行GitHub里的MXNet源代码
  3. php执行出现500,为什么我的PHP总是出现500错误?
  4. 去掉WINDOWS SERVER 开机按CTRL+ALT+DEL登陆的方法
  5. 本博客停止更新,后续用博客园。
  6. 北京东二环——东四联通机房
  7. Objective-C SQLiteHelper
  8. 共享单车或开启了物联网的大门,新的变革即将开启
  9. Vue 基础的开发环境
  10. 分区函数Partition By的与row_number()的用法以及与排序rank()的用法详解(获取分组(分区)中前几条记录)...