赞
踩
AT+HTTPCLIENT:发送 HTTP 客户端请求
AT+HTTPGETSIZE:获取 HTTP 资源大小
AT+HTTPCGET:获取 HTTP 资源Post 指定长度的 HTTP 数据
AT+HTTPCPUT:Put 指定长度的 HTTP 数据
AT+HTTPURLCFG:设置/获取长的 HTTP URL
AT+HTTPCHEAD:设置/查询 HTTP 请求头
默认的 AT 固件支持此页面下的所有 AT 命令。如果您不需要 ESP32 支持 HTTP 命令,请自行 编译 ESP-AT 工程,在第五步配置工程里选择:
发送 HTTP 客户端请求
命令:
AT+HTTPCLIENT=<opt>,<content-type>,<"url">,[<"host">],[<"path">],<transport_type>[,<"data">][,<"http_req_header">][,<"http_req_header">][...]
响应:
+HTTPCLIENT:<size>,<data> OK
<opt>:HTTP 客户端请求方法:
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>
和 <path>
参数为空时,本参数会自动覆盖这两个参数。
<”host”>:域名或 IP 地址。
<”path”>:HTTP 路径。
<transport_type>:HTTP 客户端传输类型,默认值为 1:
1:HTTP_TRANSPORT_OVER_TCP
2:HTTP_TRANSPORT_OVER_SSL
<”data”>:当 <opt>
是 POST 请求时,本参数为发送给 HTTP 服务器的数据。当 <opt>
不是 POST 请求时,这个参数不存在(也就是,不需要输入逗号来表示有这个参数)。
<”http_req_header”>:可发送多个请求头给服务器。
如果包含 URL 的整条命令的长度超过了 256 字节,请先使用 AT+HTTPURLCFG 命令预配置 URL,然后本命令里的 <"url">
参数需要设置为 ""
。
如果 url
参数不为空,HTTP 客户端将使用它并忽略 host
参数和 path
参数;如果 url
参数被省略或字符串为空,HTTP 客户端将使用 host
参数和 path
参数。
某些已发布的固件默认不支持 HTTP 客户端命令(详情请见 ESP-AT 固件差异),但是可通过以下方式使其支持该命令:./build.py menuconfig
> Component config
> AT
> AT http command support
,然后编译项目(详情请见 本地编译 ESP-AT 工程)。
该指令不支持 URL 重定向,在获取到服务器返回的状态码 301(永久性重定向)或者 302(临时性重定向)后不会自动跳转到新的 URL 地址。您可以使用某些工具获取要访问的实际 URL,然后通过该命令访问它。
如果包含 <"data">
参数的整条命令的长度超过了 256 字节,请使用 AT+HTTPCPOST 命令。
要设置更多的 HTTP 请求头,请使用 AT+HTTPCHEAD 命令。
- // HEAD 请求
- AT+HTTPCLIENT=1,0,"http://httpbin.org/get","httpbin.org","/get",1
-
- // GET 请求
- AT+HTTPCLIENT=2,0,"http://httpbin.org/get","httpbin.org","/get",1
-
- // POST 请求
- AT+HTTPCLIENT=3,0,"http://httpbin.org/post","httpbin.org","/post",1,"field1=value1&field2=value2"
命令:
AT+HTTPGETSIZE=<"url">[,<tx size>][,<rx size>][,<timeout>]
响应:
+HTTPGETSIZE:<size> OK
<”url”>:HTTP URL。
<tx size>:HTTP 发送缓存大小。单位:字节。默认值:2048。范围:[0,10240]。
<rx size>:HTTP 接收缓存大小。单位:字节。默认值:2048。范围:[0,10240]。
<timeout>:网络超时。单位:毫秒。默认值:5000。范围:[0,180000]。
<size>:HTTP 资源大小。
如果包含 URL 的整条命令的长度超过了 256 字节,请先使用 AT+HTTPURLCFG 命令预配置 URL,然后本命令里的 <"url">
参数需要设置为 ""
。
如果您想设置 HTTP 请求头,请使用 AT+HTTPCHEAD 命令设置。
AT+HTTPGETSIZE="http://www.baidu.com/img/haibo.gif"//换成自己的即可
命令:
AT+HTTPCGET=<"url">[,<tx size>][,<rx size>][,<timeout>]
响应:
+HTTPCGET:<size>,<data> OK
<”url”>:HTTP URL。
<tx size>:HTTP 发送缓存大小。单位:字节。默认值:2048。范围:[0,10240]。
<rx size>:HTTP 接收缓存大小。单位:字节。默认值:2048。范围:[0,10240]。
<timeout>:网络超时。单位:毫秒。默认值:5000。范围:[0,180000]。
如果包含 URL 的整条命令的长度超过了 256 字节,请先使用 AT+HTTPURLCFG 命令预配置 URL,然后本命令里的 <"url">
参数需要设置为 ""
。
如果您想设置 HTTP 请求头,请使用 AT+HTTPCHEAD 命令设置。
命令:
AT+HTTPCPOST=<"url">,<length>[,<http_req_header_cnt>][,<http_req_header>..<http_req_header>]
响应:
OK >
符号 >
表示 AT 准备好接收串口数据,此时您可以输入数据,当数据长度达到参数 <length>
的值时,传输开始。
若传输成功,则返回:
SEND OK
若传输失败,则返回:
SEND FAIL
<”url”>:HTTP URL。
<length>:需 POST 的 HTTP 数据长度。最大长度等于系统可分配的堆空间大小。
<http_req_header_cnt>:<http_req_header>
参数的数量。
[<http_req_header>]:HTTP 请求头。可发送多个请求头给服务器。
如果包含 URL 的整条命令的长度超过了 256 字节,请先使用 AT+HTTPURLCFG 命令预配置 URL,然后本命令里的 <"url">
参数需要设置为 ""
。
该命令的 content-type
默认类型为 application/x-www-form-urlencoded
。
如果您想设置 HTTP 请求头,请使用 AT+HTTPCHEAD 命令设置。
命令:
AT+HTTPCPUT=<"url">,<length>[,<http_req_header_cnt>][,<http_req_header>..<http_req_header>]
响应:
OK >
符号 >
表示 AT 准备好接收串口数据,此时您可以输入数据,当数据长度达到参数 <length>
的值时,传输开始。
若传输成功,则返回:
SEND OK
若传输失败,则返回:
SEND FAIL
<”url”>:HTTP URL。
<length>:需 Put 的 HTTP 数据长度。最大长度等于系统可分配的堆空间大小。
<http_req_header_cnt>:<http_req_header>
参数的数量。
[<http_req_header>]:HTTP 请求头。可发送多个请求头给服务器。
如果包含 URL 的整条命令的长度超过了 256 字节,请先使用 AT+HTTPURLCFG 命令预配置 URL,然后本命令里的 <"url">
参数需要设置为 ""
。
如果您想设置 HTTP 请求头,请使用 AT+HTTPCHEAD 命令设置。
命令:
AT+HTTPURLCFG?
响应:
[+HTTPURLCFG:<url length>,<data>] OK
命令:
AT+HTTPURLCFG=<url length>
响应:
OK >
符号 > 表示 AT 准备好接收串口数据,此时您可以输入 URL,当数据长度达到参数 <url length>
的值时,系统返回:
SET OK
<url length>:HTTP URL 长度。单位:字节。
0:清除 HTTP URL 配置。
[8,8192]:设置 HTTP URL 配置。
<data>: HTTP URL 数据。
命令:
AT+HTTPCHEAD?
响应:
+HTTPCHEAD:<index>,<"req_header"> OK
命令:
AT+HTTPCHEAD=<req_header_len>
响应:
OK >
符号 >
表示 AT 准备好接收 AT 命令口数据,此时您可以输入 HTTP 请求头(请求头为 key: value
形式),当数据长度达到参数 <req_header_len>
的值时,AT 返回:
OK
<index>:HTTP 请求头的索引值。
<”req_header”>:HTTP 请求头。
<req_header_len>:HTTP 请求头长度。单位:字节。
0:清除所有已设置的 HTTP 请求头。
其他值:设置一个新的 HTTP 请求头。
本命令一次只能设置一个 HTTP 请求头,但可以多次设置,支持多个不同的 HTTP 请求头。
本命令配置的 HTTP 请求头是全局性的,一旦设置,所有 HTTP 的命令都会携带这些请求头。
本命令设置的 HTTP 请求头中的 key
如果和其它 HTTP 命令的请求头中的 key
相同,则会使用本命令中设置的 HTTP 请求头。
// 设置请求头 AT+HTTPCHEAD=18 // 在收到 ">" 符号后,输入以下的 Range 请求头,下载资源的前 256 个字节。 Range: bytes=0-255 // 下载 HTTP 资源 AT+HTTPCGET="https://docs.espressif.com/projects/esp-at/zh_CN/latest/esp32/index.html"
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。