当前位置:首页 > 电子 > 正文内容

ESP8266发送HTTP请求GET请求POST请求

admin6年前 (2018-06-06)电子17087

一、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. 请求正文

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

HTTP 请求应答格式:

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

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

    2. 响应头(ResponseHeader)

    3. 响应正文

HTTP/1.1 200 OK
Server:Apache Tomcat/5.0.12
Date:Mon,6Oct2003 13:23:42 GMT
Content-Length:112

data(返回数据)


2. ESP8266 编程

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

/*
 *  HTTP over TLS (HTTPS) example sketch
 *
 *  This example demonstrates how to use
 *  WiFiClientSecure class to access HTTPS API.
 *  We fetch and display the status of
 *  esp8266/Arduino project continous integration
 *  build.
 *
 *  Created by Ivan Grokhotkov, 2015.
 *  This example is in public domain.
 */

#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>

const char* ssid = "zlei";
const char* password = "18829237005";

const char* host = "15r34407v7.imwork.net"; //需要访问的域名
const int httpsPort = 37170;  // 需要访问的端口
const String url = "/test";   // 需要访问的地址

void setup() {
  Serial.begin(9600);
  Serial.println();
  Serial.print("connecting to ");
  Serial.println(ssid);
  WiFi.begin(ssid, password); // 连接WIFI
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP()); // 显示WIFI地址
}

void loop() {
  Serial.print("connecting to ");  
  Serial.println(host);  

  WiFiClient client;  

  /**
   * 测试是否正常连接
   */
  if (!client.connect(host, httpsPort)) {  
    Serial.println("connection failed");  
    return;  
  }  
  delay(10);  
  
  String postRequest =(String)("GET ") + url + "/ HTTP/1.1\r\n" +  
    "Content-Type: text/html;charset=utf-8\r\n" +  
    "Host: " + host + "\r\n" + 
    "User-Agent: BuildFailureDetectorESP8266\r\n" +
    "Connection: Keep Alive\r\n\r\n";  
  Serial.println(postRequest);  
  client.print(postRequest);  // 发送HTTP请求

  /**
   * 展示返回的所有信息
   */
  String line = client.readStringUntil('\n');
  while(line.length() != 0){
    Serial.println(line);
    line = client.readStringUntil('\n');
  }
  Serial.println(line);
  client.stop();
  delay(3000); 
}

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

  其中测试结果如图所示:

  


扫描二维码推送至手机访问。

版权声明:本文由视觉博客发布,如需转载请注明出处。

本文链接:http://www.cqroom.cn/post/64.html

“ESP8266发送HTTP请求GET请求POST请求” 的相关文章

正点原子阿波罗ST32F767试用

正点原子阿波罗ST32F767试用

一、             硬件整体介绍 1.       底板  &nb...

基于PIC单片机和AD7705的高精度信号采集系统设计

基于PIC单片机和AD7705的高精度信号采集系统设计

在工业现场测试过程中,由于生产中的各种参数的测试数据对生产过程具有重要的意义,因此对各种测试数据精度要求较高。而对于传统的传感器,比如压阻式、应变桥式、热电偶、热电阻、电容式以及压电式传感器,输出的一般是毫伏级的微弱模拟信号,温度特性差,而且在传输过程中信噪比明显降低。因此需要设计高精度稳定性...

单片机学习心得—学习单片机必看

08年的时候,因为制作FM发射电路采用了BH1415的芯片,需要用到单片机控制,所以开始接触使用单片机,虽然以前读书时作为一门功课学过,不过也快丢荒了近5年了,基本上都忘光了,也算是从头学起了吧。 经常在群、论坛里看到有人问:怎么学单片机?也常看到有...

如何看懂电路图(四)-集成运算放大器(运放)

如何看懂电路图(四)-集成运算放大器(运放)

集成运算放大器是一种把多级直流放大器做在一个集成片上,只要在外部接少量元件就能完成各种功能的器件。因为它早期是用在模拟计算机中做加法器、乘法器用 的,所以叫做运算放大器。它有十多个引脚,一般都用有 3 个端子的三角形符号表示,如图 10 。它有两个输入端、 1 个输出端,上面那个输入端叫做反相...

如何看懂电路图(五)-放大电路读图要点和举例

如何看懂电路图(五)-放大电路读图要点和举例

放大电路是电子电路中变化较多和较复杂的电路。在拿到一张放大电路图时,首先要把它逐级分解开,然后一级一级分析弄懂它的原理,最后再全面综合。读图时要 注意: ① 在逐级分析时要区分开主要元器件和辅助元器件。放大器中使用的辅助元器件很多,如偏置电路中的温度补偿元件,稳压稳流元器件,防止自激振荡的防...

如何看懂电路图(六)-振荡电路的用途和振荡条件

如何看懂电路图(六)-振荡电路的用途和振荡条件

不需要外加信号就能自动地把直流电能转换成具有一定振幅和一定频率的交流信号的电路就称为振荡电路或振荡器。这种现象也叫做自激振荡。或者说,能够产生交流信号的电路就叫做振荡电路。 一个振荡器必须包括三部分:放大器、正反馈电路和选频网络。放大器能对振荡器输入端所加的输入信号予以放大使输出信...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。