ESP-AT 系列: HTTP 客户端功能

2023-05-16

AT 工程:https://github.com/espressif/esp-at
AT 文档:https://docs.espressif.com/projects/esp-at/zh_CN/latest/

简介

esp-at 实现了一些常用的 AT 指令集, 该指令集可用于 MCU/PC/云等与 ESP 设备的交互. 目前 esp-at 已经开始支持部分 HTTP 客户端的功能, 包括 HEAD, GET, POST, PUT, DELETE 等请求方式. 本文基于 ESP-AT 环境来介绍这几种请求方式的用法.

准备

  • AT 环境搭建, 可参考 https://docs.espressif.com/projects/esp-at/zh_CN/latest/Compile_and_Develop/How_to_clone_project_and_compile_it.html#esp-at

  • 开启 AT+HTTPCLIENT 功能

    make menuconfig —> Component config —> AT —> AT http command support 选中即可, 如下图所示.
    在这里插入图片描述

AT+HTTPCLIENT 命令简介

命令格式:
AT+HTTPCLIENT=<opt>,<content-type>,[<url>],[<host>],[<path>],<transport_type>,[<data>]

参数:

  • <opt>: 请求方法
    • 1: HEAD 请求方法
    • 2: GET 请求方法
    • 3: POST 请求方法
    • 4: PUT 请求方法
    • 5: DELETE 请求方法
  • <content-type>: 请求数据类型
    • 0: "application/x-www-form-urlencoded"
    • 1: "application/json"
    • 2: "multipart/form-data"
    • 3: "text/xml"
  • [<url>]: HTTP URL, 可选字段
  • [<host>]: 域名或是IP地址, 可选字段
  • [<path>]: HTTP Path, 可选字段
  • <transport_type>: HTTP Client transport
    • 0: HTTP_TRANSPORT_UNKNOWN, 默认值.
    • 1: HTTP_TRANSPORT_OVER_TCP
    • 2: HTTP_TRANSPORT_OVER_SSL
    • [<data>]: 可选字段, 当 POST 请求时, 为上传的用户数据

Note:
如果 <url> 字段没有设置, <host><path> 参数必须设置.

一. HEAD 请求头部数据

在这小节, 介绍 HEAD 请求服务端的头部数据,服务器端以 http://httpbin.org 来做测试, 返回的结果以头字段的形式呈现.
AT 命令:
AT+HTTPCLIENT=1,0,"http://httpbin.org/get",,,0

AT 返回:
在这里插入图片描述

二. GET 请求下载文件

这里以下载歌曲为例, 演示 GET 请求下载文件.
演示文件为网易云音乐, 网页链接为 https://music.163.com/#/song?id=1341860760, 文件链接为 http://music.163.com/song/media/outer/url?id=1341860760.mp3

AT 命令如下:

// 恢复出厂设置
AT+RESTORE

// 设置 AT 为 station 模式
AT+CWMODE=1

// 连接到路由器,mercury_song 为测试路由器的 ssid, 12345678 测试路由器的 password. 具体设置由所连路由器决定
AT+CWJAP="mercury_song","12345678"

// 通过 GET 请求下载 MP3 音乐
AT+HTTPCLIENT=2,0,"http://music.163.com/song/media/outer/url?id=1341860760.mp3",,,1

AT 返回:
在这里插入图片描述

三. POST 请求更改服务器资源

该部分介绍 POST 请求更改服务器资源, 服务器端以 http://httpbin.org 来做测试.

参考 AT 命令如下:
AT+HTTPCLIENT=3,0,"http://httpbin.org/post","httpbin.org","/post",1,"field1=value1&field2=value2"

AT 返回:
在这里插入图片描述

四. PUT 请求

PUT 方法和 POST 请求相类似, PUT 请求的参数形式支持 Query String Parameters 方式. 服务器端以 http://httpbin.org 来做测试.

参考 AT 命令:
AT+HTTPCLIENT=4,0,"http://httpbin.org/put?user=foo",,,1

AT 返回:
在这里插入图片描述

五. DELETE 请求

DELETE 方法被用来删除服务器的资源, 该请求方式的确切用法取决于服务器的实现. 服务器端以 https://postman-echo.com/delete 来做测试.

参考 AT 命令:
AT+HTTPCLIENT=5,0,"https://postman-echo.com/delete",,,0

AT 返回:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ESP-AT 系列: HTTP 客户端功能 的相关文章

  • 制作树莓派SD卡备份镜像——树莓派系统备份与还原指南

    制作树苺派SD卡备份镜像 树苺派系统备份与还原指南 科技爱好者关注 0 1452016 05 28 22 12 33字数 501阅读 26 658 树莓派使用SD卡来安装系统 xff0c 如果SD卡丢失或者损坏 xff0c 那么树莓派上的数
  • ARM Cortex-M4和Cortex-M0+中断优先级及嵌套抢占问题

    转自 xff1a http blog chinaaet com jihceng0622 p 5100001238 坐在上海回北京的高铁上 xff0c 漫长的旅途着实让人感到无聊 xff08 没买到直达的高铁 xff0c 只能慢悠悠的走一站停
  • 基于MFC的简易TCP/IP调试助手开发

    在学习TCP IP通讯过程中 xff0c 打算参考网上的教程写一个简易的调试助手 xff0c 服务器与客户端分别参考以下两位代码完成 xff0c 效果图如下 1 如何基于TCP IP协议进行MFC Socket网络通讯编程 Ezreal z
  • 下载的软件包保存在缓存中,直到下次成功执行事务。 您可以通过执行 'dnf clean packages' 删除软件包缓存。 错误:事务检查错误

    下载的软件包保存在缓存中 xff0c 直到下次成功执行事务 您可以通过执行 dnf clean packages 删除软件包缓存 错误 xff1a 事务检查错误 使用yum安装时出现了这个错误 xff0c 更新一下 sudo yum upd
  • @SpringBootApplication注解无效

    64 SpringBootApplication注解无效 import或clone下来的项目idea打开后 64 SpringBootApplication注解无效 1 查看看maven依赖是否报红 xff0c 如果报红说明依赖有问题检查p
  • 修改docker容器中的配置文件

    容器创建好后有时需要进入容器修改配置 xff0c 发现没有vim 我们可以使用sed命令来修改配置文件 sed i 3s yes no a conf 将a conf中第3行中的yes修改为no sed i 3ayes 61 no a con
  • 最近开始研究openpilot的开源飞控,记录一下

    国内用这个飞控的人比较少 xff0c 也没有太多的文章来描述包括代码结构之类的 xff0c 其实该飞控相当强大 xff0c 而且有一个用QT做的很强悍的GCS xff0c 我用380的机架已经搭建了一个四轴 xff0c 用默认参数就能飞得很
  • 解决aria2下载磁力链接或bt文件时没有速度或速度为0

    使用aria2下载磁力链接和种子时 xff0c 发现长时间都没有速度 xff0c 因为默认的配置是没有加tracker列表的 xff0c 就像迅雷没有p2p共享一样 xff0c 所以要在配置文件中加入trackers xff0c 速度就会提
  • UDP 打洞 java demo

    UDP打洞的具体原理就不细说了文章还是很多 xff0c 说下我的网络环境 xff0c 家里台式电脑网线连的家里路由器 移动宽带 xff0c 公司台式电脑网线连的公司路由器 电信宽带 xff0c 一台有公网IP的华为云主机 xff08 我是试
  • 云服务器内存不够,设置swap交换分区

    购买了一台阿里的云服务器1核2G的 xff0c 装上docker后 xff0c 运行了十几个容器后面的容器就再也没法启动了 xff0c 一看物理内存为0 xff0c 加内存又没钱 xff0c 只能牺牲速度了 xff0c 阿里云的服务器默认是
  • sql 拼接一列数据为一个字段

    最近有个功能中需要把一列数据拼接成一个字段的需要 xff0c 本以为concat 轻松就能实现 xff0c 结果却差点意思 xff0c 这个是拼接一行之间的 xff0c group concat 需要分组才能拼接组内的一列数据 xff0c
  • idea反编译

    idea有自带的反编译插件java decompiler jar xff0c 默认是安装的 这个工具包在F Program Files JetBrains IntelliJ IDEA 2020 2 3 plugins java decomp
  • android远程协助

    一部手机有时候需要远程协助另一台手机如QQ的远程协助一样 xff0c 准备两个手机 下面用AB代替 1 A手机 xff08 需要被协助的手机 xff09 开启开发者选项 xff0c usb连接电脑 xff0c 命令开启ADB xff08 手
  • 阿里云服务器安装图形界面

    为了自动化流程安装图形界面 xff0c 我的服务器是Centos7 1 yum安装gnome图形界面 yum groupinstall GNOME Desktop y 2 安装远程桌面服务端 yum y install tigervnc s
  • 国网 内网U盘 服务未启动 驱动版本不符问题

    国网内网U盘问题处理 1 提示服务未启动 是因为Bios开启了Secure BOOT xff0c 将这个选项设置为disable就可以 xff0c 进入Bios这个选项有的主板在Boot选项下 xff0c 有的在Security选项下 xf
  • 【C++】面试题目,整理自牛客网

    来源 1 写出完整版的strcpy函数 char strcpy char strDest const char strSrc assert strDest 61 NULL amp amp strSrc 61 NULL char addres
  • 卡尔曼滤波

    系列文章目录 前言 一 线性高斯系统 二 卡尔曼滤波算法 1 卡尔曼滤波算法的应用 2 卡尔曼滤波的数学推导 1 预测部分的推导 2 观测部分的推导 前言 最近在阅读概率机器人这本书 xff0c 读到了卡尔曼滤波的相关内容 xff0c 想要
  • xcode升级到6.2,解决了simulator国际化无法获取中文的问题

    问题描述 xff1a http blog csdn net aileenyuxiao article details 42704917 xcode最近升级到6 2 xff0c 这个bug也一起解决了 xff0c 只需要修改simulator
  • 利用OOQP求解二次凸优化问题

    最近使用到了OOQP求解凸优化问题 xff0c 所以记录一下求解简单的二次凸优化问题 目录 一 OOQP安装 二 OOQP相关介绍 三 例题 1 数学例题 2 代码求解 3 求解结果 总结 一 OOQP安装 参考了浙大高飞老师团队提供的 O
  • 一、pixhawk 开发之 QGroundControl 安装

    提示 xff1a 地面站 xff08 QGroundControl xff09 安装 一 注意事项 1 There are known video steaming issues on Ubuntu 18 04 systems with d

随机推荐

  • git bash可以正常commit,但是 VSCode 里不能正常commit使用的解决方法

    问题描述 同一路径下的源码 xff0c 使用git bash可以正常commit xff0c 但是使用vscode提交commit就会一直卡住 xff0c 转圈圈 参考方案链接 xff1a VS CODE GIT 500 问题处理 pudn
  • Windows和Linux双系统安装教程

    最近刚刚完成了Windows和Linux双系统 xff08 这里以Ubuntu安装为例 xff09 的安装 xff0c 应某奔同学要求 xff0c 这里简单记录下安装过程 系统启动盘准备Windows系统安装分出给Linux系统的磁盘空间安
  • Level5#Unit1#Part1#Dialogue#A-Customer-Complaint

    Is this the ACE service center Yes it is sir May I help you Yes I 39 m calling to complain about your service Certainly
  • Level5#Unit1#Part2#Listening#At-Jessica’s-Reunion-Party1

    Jessica 39 s 20 year classreunion was held at a fancy hotel When she arrived she wasn 39 t sure she was in the right pla
  • Level5#Unit2#Part1#Dialogue#The-Teenage-Years

    What 39 s so funny What are you writing about I 39 m writing about something I saw earlier this morning Really Do you ke
  • nginx环境wordpress 固定链接实现…

    开始几次设置wordpress的固定链接都没成功 xff0c 今天做松子价格网时不甘心 xff0c 试了几次OK了 其实nginx环境下设置wordpress固定链接 xff08 也叫伪静态 xff09 非常简单 xff08 我是用的是wo
  • 如何使用vb.net多线程

    可能一些小程序用不上 xff0c 单线程就可以完成 xff0c 但是很多程序往往需要多个线程同时操作 xff0c 或者用辅助线程来完成主线程的工作 xff0c 多线程对于一个程序员来说是一个必须逾越的槛 最近在写一个程序 xff0c 设备要
  • 准备自己做块飞控,先看看方案

    主要参考是CC3D和crazyflie 2 0 xff0c 双CPU xff1a STM32F405RG xff0c 和STM32F103相比 xff0c 支持浮点运算 xff0c 168MHz xff0c 片上存储空间大 xff0c 考虑
  • 转:如何获取某人的所在物理位置

    如何获取某人的所在物理位置 xff1f xff08 andorid手机GPS 基站定位 JSON获取基站定位信息 xff09 原文地址 xff1a http cyad blog 163 com blog static 54368792011
  • Excel“工程不可查看”及VBA工程密码…

    一 Excel 工程不可查看 两种实现方法及破解 关于Excel宏编程中 xff0c 要用到一些技巧 xff0c 如破解Excel宏加密 今天我对一个Excel宏编程中进行日期限制进行了破解 方法一 xff08 共用级锁定 xff09 1
  • vba给数组赋值

    39 向VBA数组中写入数据 39 1 按编号 标 写入和读取 Sub t1 39 写入一维数组 Dim x As Integer Dim arr 1 To 10 arr 2 61 190 arr 10 61 5 End Sub
  • 中兴光猫配置文件获取方法

    中兴光猫配置文件获取方法 http 192 168 1 1 manager dev config t gch 有些配置文件加密了 xff0c 还不好破解 网上有超级牛帖子 xff0c 不过想在好像web shell也关闭了 http www
  • wget下载百度网盘文件

    分享一下wget下载百度网盘文件 有些时候需要从网盘下比较大文件 xff0c 但是linux无法登陆百度网盘 xff08 当然如果使用了API xff09 可以获取下载链接 这里介绍简单的方法 xff0c 直接在百度网盘分享建立公共链接 然
  • sudo aptitude install…

    sudo aptitude install 这个方法可以解决破损包问题 Aptitude will give up less easily and will attempt to find solutions which may invol
  • centos 万兆网卡使用要点

    随着宽带技术的快速发展 xff0c 服务器使用万兆网卡的概率越来越高 最近装了几台服务器都用的万兆网卡 xff0c 为了图便宜 xff0c 网卡和模块都是淘宝上买的 xff0c 这部还真遇到不少问题 我的服务器都是centos6 4 64位
  • 实在受不了360流氓浏览器用了10年终于不用了

    360浏览器 xff0c 恶心广告 xff0c 垃圾软文越来越泛滥了 xff0c 实在让人受不了 用了近10年终于下决心抛弃了 大家看下恶心不 xff0c 天天都是这个
  • ESP-AT 系列: AT+MQTT 使用

    AT 工程 xff1a https github com espressif esp at AT 文档 xff1a https docs espressif com projects esp at zh CN latest MQTT AT
  • ESP8266 常见固件烧写失败原因和解决方法

    简介 在使用 ESP8266 进行开发时 读者或多或少都能遇到固件烧写失败情况 无论是官方提供的 windows 上 Flash 下载工具 还是 SDK 中提供的 esptool py 下面笔者提供几种常见的烧写失败的原因和对应解决方法 原
  • 基于ros的kcf目标跟随

    本文参考的是基于 大神的博客 https blog csdn net yiranhaiziqi article details 53303747 locationNum 61 10 amp fps 61 1 关于kcf追踪的ros库在git
  • ESP-AT 系列: HTTP 客户端功能

    AT 工程 xff1a https github com espressif esp at AT 文档 xff1a https docs espressif com projects esp at zh CN latest 简介 esp a