使用WIFI模块AT指令进行HTTP交互

2023-11-17

        超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。用户通过M0M1系列的模组可使用2种方式进行HTTP的交互:1.使用标准的SOCKET通信,2.使用HTTP+AT固件中的HTTP指令进行交互,本文将着重介绍第二种交互方式。

一、HTTP通信基本设置

1. 设置HTTP服务器端口和地址

AT+HTTPURL=80,www.baidu.com

 

功能:设置/查询HTTP服务器端口和地址

查询指令格式:

AT+HTTPURL<CR><LF>

响应:

+ok=<­­­­­­port,address><CR><LF><CR><LF>

参数: 请参考设置参数

设置指令格式:

AT+HTTPURL=<port,address> <CR><LF>

响应:

+ok<CR><LF><CR><LF>

参数:

port:HTTP服务器端口号

address:HTTP服务器的IP地址或者域名

 

2. 设置协议头POST或者GET的路径

 

AT+HTTPPH=/index.html

 

功能:设置/查询HTTP协议头POST或者GET的路径

查询指令格式:

AT+HTTPPH<CR><LF>

响应:

+ok=<­­­­­­address><CR><LF><CR><LF>

参数: 请参考设置参数

设置指令格式:

AT+HTTPPH=<address> <CR><LF>

响应:

+ok<CR><LF><CR><LF>

参数:

address:HTTP协议头POST或者GET的路径

 

3. 设置协议头中Connection属性

 

AT+HTTPCN=keep-alive

 

功能:设置/查询HTTP协议头Connection属性

查询指令格式:

AT+HTTPCN<CR><LF>

响应:

+ok=<­­­­­­connection><CR><LF><CR><LF>

参数: 请参考设置参数

设置指令格式:

AT+HTTPCN=<connection> <CR><LF>

响应:

+ok<CR><LF><CR><LF>

参数:

connection:HTTP协议头Connection属性

 

 

 

4. 设置协议头中User-Agent属性

AT+HTTPUA=lwip

 

功能:设置/查询HTTP协议头User agent属性

查询指令格式:

AT+HTTPUA<CR><LF>

响应:

+ok=<­­­­­­user agent><CR><LF><CR><LF>

参数: 请参考设置参数

设置指令格式:

AT+HTTPUA=<user agent> <CR><LF>

响应:

+ok<CR><LF><CR><LF>

参数:

user agent:HTTP协议头User-Agent属性

 

5. 设置协议头中Content-type属性

AT+HTTPCT=text/html

 

 

功能:设置/查询HTTP协议头Content-type属性

查询指令格式:

AT+HTTPCT<CR><LF>

响应:

+ok=<­­­­­content type><CR><LF><CR><LF>

参数: 请参考设置参数

设置指令格式:

AT+HTTPCT=<Content type> <CR><LF>

响应:

+ok<CR><LF><CR><LF>

参数:

content type:HTTP协议头Content-type属性

注意:如果在通信中,不需要修改HTTP的属性,则以上属性只需要进行一次设置即可。否者需要在每次通信前再设置一次。

 

 

6. 设置HTTP头中自定义选项(032增加)

AT+HTTPUD=authorization: basic 123456\r\n

 

功能:设置/查询HTTP头中自定义选项

查询指令格式:

AT+HTTPUD<CR><LF>

响应:

+ok=<len,­­­­­­user define><CR><LF><CR><LF>

参数: 请参考设置参数

设置指令格式:

AT+HTTPUD=<len> <CR><LF>

响应:

+ok=n<CR><LF><CR><LF>

参数:

len:自定义的数据长度

user define:用户自定义的http头中的内容

n:实际输入的自定义数据长度

注意:

1.在使用中如果增加多个http头标识时,请注意\r\n来换行。\r\n输入时,是2字节的二进制数据。

2.当出现>表示模块开始接收自定义数据。

 

 

二、HTTP数据交互

1.  使用GET方式进行交互:AT+HTTPTP=GET

    使用POST方式进行交互:AT+HTTPTP=POST

 

功能:设置/查询HTTP协议头交互属性

查询指令格式:

AT+HTTPTP<CR><LF>

响应:

+ok=<­­­­­­type><CR><LF><CR><LF>

参数: 请参考设置参数

设置指令格式:

AT+HTTPTP=<type> <CR><LF>

响应:

+ok<CR><LF><CR><LF>

参数:

type:HTTP协议头交互属性,POST或者GET

 

2.  开始进行数据交互:

 

功能:HTTP协议交互

指令格式:

AT+HTTPDT=<len><CR>

响应:

+ok=n[,data]<CR><LF><CR><LF>

参数:

len:发送数据的长度。范围:0~2048 字节 当输入成功并且连接HTTP服务器连接成功后返回一个”>”, 串口等待 3s 输入,将串口收到数据发送到HTTP,若两个字节之间的间隔大于 10ms 则认为输入结束将立刻发送。

n:收到HTTP返回的数据内容长度

data:实际收到的HTTP返回的内容

注:

1. 当返回+ok时,则表明模组在HTTP层通信已经完成。当返回+ERR时,则表明HTTP通信失败。

2. 如果无上传的数据,则len一定要填写为0,如:AT+HTTPDT=0

3.当出现>表示HTTP已经连接成功,则成功的上传了HTTP的包头

4.只有当n大于0时,data部分才会有数据显示。当出现+ok=0时,也表示通信成功,只是HTTP部分没有数据部分返回。

 

 

 

 

如果遇到模组使用上的问题,可以进群号为519630819的QQ群进行交流。

 

相关产品,请关注:shop.mqlinks.com

 

 

 

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

使用WIFI模块AT指令进行HTTP交互 的相关文章

  • Web API GET 请求中的电子邮件地址

    我正在开发在 ASP NET Web API 中实现的 REST API 我们想要支持的一个场景是执行GET通过电子邮件地址请求一些用户信息 理想情况下 客户应该能够执行以下操作 GET api v1 users email your em
  • 无法在 git 上获取 Http 工作

    我在拇指驱动器上使用 gitbash 作为 git 我的防火墙阻止了我 并且想设置我的 git 以进行 http 访问 我使用 github 并且已经看到了有关如何执行此操作的各种信息 但我还不够了解 无法让它为我自己工作 我在 php i
  • HTTPbis - bis 是什么意思?

    我经常看到 bis 附加到协议版本 例如 v 34bis 或 httpbis bis 是什么意思或代表什么 我认识的一位电信工程师认为它可能起源于法国 正如其他人已经说过的 bis 来自 两次 或 重复 http oxforddiction
  • 如何使用 python urllib 在 HTTP/1.1 中保持活力

    现在我正在这样做 Python3 urllib url someurl headers HOST somehost Connection keep alive Accept Encoding gzip deflate opener urll
  • PUT/DELETE 与 REST 是自动幂等的吗?

    我正在学习 REST 和 PUT DELETE 我读到这两者 以及 GET 都是幂等的 这意味着多个请求使服务器进入相同的状态 重复的 PUT DELETE 请求是否会离开 Web 浏览器 当使用XMLHttpRequest 换句话说 服务
  • 处理rails应用程序中的rack_throttle异常

    当超出速率限制时 如何处理由rack throttle gem 生成的错误 现在我只收到包含以下内容的回复 Internal Server Error undefined method each for 403 Forbidden Rate
  • 在 Python 中发送 100,000 个 HTTP 请求的最快方法是什么?

    我正在打开一个包含 100 000 个 URL 的文件 我需要向每个 URL 发送 HTTP 请求并打印状态代码 我正在使用 Python 2 6 到目前为止 我已经了解了 Python 实现线程 并发的许多令人困惑的方式 我什至看过蟒蛇一
  • IFormFile 未由 dropzone uploadMultiple 请求填充

    我遇到的问题是 IFormFile 列表没有填充给定的文件 但是当我调用 HttpContext Request Form Files 时然后我就可以访问这些文件了 我更喜欢使用 IFormFile 因为它似乎是新的 Dotnet core
  • golang中默认的HTTP拨号超时值

    我正在运行 golang http 客户端来对服务器进行压力测试 有时我会收到错误 拨号 tcp 161 170 xx xxx 80 操作超时 错误 我认为这是 HTTP 客户端超时 我正在考虑增加超时值https stackoverflo
  • 在 Go 中读取请求负载?

    我正在使用文件上传器 需要请求负载中的详细信息来裁剪它 func Upload w http ResponseWriter r http Request reader err r MultipartReader if err nil htt
  • 如何在 Laravel 中禁用 JSON 响应的分块编码?

    我从 Laravel 中的控制器方法返回一个数组 Laravel 将此解释为我想发送 JSON 这很好 但它没有设置Content Length并改为使用Transfer Encoding chunked 我的回复很小 所以我不想把它们分块
  • 从 Django 基于类的视图的 form_valid 方法调用特殊(非 HTTP)URL

    如果你这样做的话 有一个 HTML 技巧 a href New SMS Message a 点击新短信打开手机的本机短信应用程序并预 先填写To包含所提供号码的字段 在本例中为 1 408 555 1212 以及body与提供的消息 Hel
  • Java HttpURLConnection:内容长度计算

    我目前正在为 bitbucket issues RESTful API 开发一个库 我取得了很大的进步 现在我要解决这个部分更新问题 http confluence atlassian com display BBDEV Issues Is
  • Node.JS Web 服务器中的安全性

    所以 我正在学习 Node JS 到目前为止我很喜欢它 我已经有几个项目在工作了 我想我可以在其中使用nodejs 不过 我担心安全问题 如果我使用 Node JS http 模块编写自定义 Web 服务器 我是否可能非常容易受到攻击 Ap
  • 如何自定义解析错误的 HTTP 400 响应?

    我编写了一个 REST API 服务 要求所有响应均为 JSON 但是 当 Go HTTP 请求解析器遇到错误时 它会返回 400 作为纯文本响应 而不会调用我的处理程序 例子 gt curl i H Authorization Basic
  • 对于非文本媒体类型,发送带有 Content-Type 标头的字符集参数是否绝对错误?

    我发现了两个软件之间的错误 其中一个正在发出标头 Content Type application x bittorrent charset utf 8 另一个是错误地处理这个问题 但如果删除 charset 参数 则可以正确处理它 我需要
  • HTTP 重定向图像可以吗?

    返回图片资源时返回301 302 303代码可以吗 我过去曾这样做过 而且似乎有效 这是好的做法吗 它与大多数浏览器兼容吗 是的 您可以重定向图像 浏览器将遵循重定向 但出于性能原因 您通常希望将重定向保持在最低限度 因为每个重定向都需要单
  • 我首次设置 AWS EB 时创建的默认安全组是什么?

    我对几个组所扮演的角色感到困惑 这些组似乎已自动添加到我的 AWS 安全组列表中 并以我收集的默认配置进行连接 并且想知道它们是如何工作的 以及它们的安全性如何 改变 具体来说 有三个神秘之处 launch wizard 1其中有一条入站规
  • 从浏览器中删除cookie?

    有什么方法可以指示网络浏览器完全delete一个人的cookie是用PHP设置的吗 我不想expiry或者等待浏览器closed 对于删除 我的意思是实际上不再将其列在 cookie 列表中 尝试这样删除所有 cookie foreach
  • 如何通过 HTTP POST 发送充满对象的 NSArray?

    我在 iPhone 端有一个产品 购物清单 由具有名称 product id 等的产品对象组成 我希望将此列表发送到服务器 在那里我将服务器上的列表与 iphone 中的列表进行比较 以合并所做的更改并将合并的列表发送回 iphone 如何

随机推荐

  • 关于docker和podman

    docker daemon 存在问题 单点故障问题 docker daemon一旦死亡 所有容器都将死亡 docker daemon 拥有运行中的容器的所有子进程 所有docker操作都需由具有跟root相同权限的用户执行 构建容器时 可能
  • 【华为OD机试】按身高和体重排队(C++ Python Java)2023 B卷

    时间限制 C C 1秒 其他语言 2秒 空间限制 C C 262144K 其他语言524288K 64bit IO Format lld 语言限定 C clang11 C clang 11 Pascal fpc 3 0 2 Java jav
  • Thread.Sleep(0)的妙用

    https www cnblogs com JianGuoWan p 9139698 html Thread Sleep 0 表示挂起0毫秒 你可能觉得没作用 你要写Thread Sleep 1000 就有感觉了 似乎毫无意义 MSDN的说
  • VS2010配色方案

    找了很久的配色方案 绝对是精挑细选的 现在分享一下地址 http www hanselman com blog VisualStudioProgrammerThemesGallery aspx 个人喜欢的配色方案 Ragnarok 附图 忘
  • 添加数据设置某个列自增_流量物联卡这样设置,网速立马变快

    物联卡是什么 简单而言 物联卡跟手机卡的区别就是 不能打电话和发短信 物联卡有自己的流量池 共享流量 比如下图就是某个物联卡的套餐 移动APN设置 移动设置APN 安卓手机需要把设备的接入点改成CMIOT 具体步骤如下 A 找到设置移动网络
  • 本地主机连接阿里云数据库(自建数据库)排雷

    最近在阿里云上开了一台云主机 自己搭建了数据库作为数据库使用 正当我本地去连接云上mysql时 发现死活连接不上 我这边阿里云上安全组端口已经放开了 出方向和入方向都开了歪 但是依然连接不上 是不是数据库做了限制 此时的我恍然大悟 欻欻欻欻
  • 叉积的意义

    我们知道 向量的叉积可以帮助我们求出一个和已知两个向量构成的平面相互垂直的另一个向量 例如求法向量 而且一般来说 都是求三维空间的向量的叉积 下面我们要讨论的就是各种 为什么如此 考虑两个相互不平行的三维向量 它们的叉积 以行列式形式来表示
  • 用VRTK4.0如何实现与UI交互(保姆级别教程)

    1 导入Tilia UnityUI master包 点击下面的链接直接跳到这个界面studentutu Tilia UnityUI Tilia package for VRTK 4 featuring support for Unity U
  • Your python install is corrupted. Please fix the '/usr/bin/python' symlink.

    执行如下命令就ok了 sudo ln sf usr bin python2 7 usr bin python 如果还是不行 reinstall sudo apt get install reinstall python 参考地址 https
  • ‘open3d.open3d.geometry.PointCloud‘ object has no attribute ‘voxel_down_sample‘

    scene cloud open3d geometry PointCloud scene cloud points open3d utility Vector3dVector scene points scene cloud scene c
  • 第四讲 系统建模方法

    系统建模一般流程 实际系统的分析方法大致类似 但对于实际系统的模型实现方式则有多种 1 面向方程 图框 的因果建模 基于图框进行系统模型实现 的软件很多 如Simulink AMESim 应用于控制领域 等 2 面向对象 非因果 的物理建模
  • Ztree和eazyUi-tree的区别

    l 在页面中引入ztree相关的文件 1 1 使用简单json数据构造ztree 重点
  • 常用端口

    端口号码 层 名称 注释 1 tcpmux TCP 端口服务多路复用 5 rje 远程作业入口 7 echo Echo 服务 9 discard 用于连接测试的空服务 11 systat 用于列举连接了的端口的系统状态 13 daytime
  • 使用father打包发布前端工具库

    father库说明 GitHub https github com umijs father 升级迁移 教程使用father v1 版本较老 可参考下面的教程升级 father 4升级教程 安装 yarn add father 项目配置 0
  • WebStorm、Idea编辑器中右侧的SVN下拉,提交标志不见了呢?--已解决

    新打开的窗口 没有SVN的下拉标志如何把他弄出来呢 首先你得安装了小乌龟软件 然后来到编辑器中 选择 1 VCS Enable Version Control Integretion 2 选择Subversion 点击OK ok 完成
  • logback打印日志不显示具体的信息,显示问号

    目录 表象 原因 日志打印的Appender是使用的ch qos logback classic AsyncAppender 正确配置 表象 配置
  • java21天打卡Day13-正则表达式

    原来正则表达式是这样用的
  • 前端实现文件在线预览

    需求 一个览pdf word xls ppt等文件需要在线预览功能 介绍 使用 XDOC文档预览云服务文档地址 基于HTTP的REST方式调用 只需要传入URL 支持pdf docx xlsx pptx rtf jpg png mp4等多种
  • DINO-DETR论文学习记录

    摘要 我们介绍了DINO 带有改进的去噪器box的DETR 一种最先进的端到端对象检测器 DINO 通过使用对比方式进行去噪训练 混合查询选择方法进行锚点初始化以及用于框预测的ook forward twice方案 在性能和效率方面比以前的
  • 使用WIFI模块AT指令进行HTTP交互

    超文本传输协议 HTTP HyperText Transfer Protocol 是互联网上应用最为广泛的一种网络协议 所有的WWW文件都必须遵守这个标准 设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法 用户通过M0M1系