HTTP AT命令集
AT+HTTPCONF
功能说明
设置HTTP全局配置。设置一次后永久生效。
命令格式
AT+HTTPCONF=<timeout>[,<port>]
响应格式
成功响应:
OK
错误响应:
ERROR:<error_no>
参数
- <timeout>:HTTP接收/发送超时(秒)
默认值:10
- <port>:HTTP服务器端口
范围:[0,65535] (默认值0)
0:HTTP使用80端口,HTTPS使用443
错误代码
1: 参数错误
示例
设置HTTP接收/发送超时为1秒,端口为12345:
AT+HTTPCONF=1,12345
OK
恢复默认设置:
AT+HTTPCONF=10,0
OK
AT+HTTPHEADER
功能说明
用 透传(TT)模式 设置HTTP请求头。用于设置GET/POST/PUT等方法使用的HTTP请求头。
设置后,对后续的所有HTTP相关命令生效,直到重新配置,重启或参数用0进行重置。
备注
该命令仅支持在 主控控制模式 下使用。
命令格式
AT+HTTPHEADER=<req_header_len>
响应格式
成功响应:
>>>
<req_header>
OK
错误响应:
ERROR:<error_no>
参数
- <req_header_len>:单个HTTP请求头的长度
0:清除重置所有已设置的HTTP请求头
无长度限制
- <req_header>:
实际的HTTP请求头字符串
错误代码
1: 参数错误
2: 内存分配错误
3: 在TT模式下获取数据失败
示例
设置两个常用的请求头:
AT+HTTPHEADER=17
>>>
Connection: close
OK
AT+HTTPHEADER=30
>>>
Accept-Encoding: gzip, deflate
OK
清除所有请求头:
AT+HTTPHEADER=0
OK
AT+HTTPQUERY
功能说明
查询HTTP全局配置,包括HTTP接收/发送超时、服务器端口和请求头。
命令格式
AT+HTTPQUERY
响应格式
成功响应:
Global HTTP configuration:
http_timeout: <HTTP接收/发送超时>
http_server_port: <服务器端口>
http_req_header_cnt: <请求头数量>
http_req_header list:
<请求头1>
<请求头2>
...
OK
错误响应:
ERROR:<error_no>
错误代码
1: 参数错误
示例
查询HTTP配置:
AT+HTTPQUERY
Global HTTP configuration:
http_timeout: 10
http_server_port: 0
http_req_header_cnt: 2
http_req_header_list:
Connection: close
Accept-Encoding: gzip, deflate
OK
AT+HTTPGET
功能说明
获取HTTP资源。
命令格式
AT+HTTPGET=<host>,<path>,<conn_type>[,<cert_index>][,<req_header_cnt>,<req_header>...<req_header>]
备注
如果该命令有指定参数请求头,那么会和 AT+HTTPHEADER 配置的全局请求头一起添加到HTTP报文中。
响应格式
成功响应:
+HTTPGET: HEADER LEN = <消息头长度>
+HTTPGET: HEADER DUMP START
<消息头内容>
+HTTPGET: HEADER DUMP END
+HTTPGET: BODY DUMP START
<消息体内容>
+HTTPGET: BODY DUMP END
+HTTPGET: BODY LEN = <消息体长度>
OK
错误响应:
ERROR:<error_no>
参数
<host>:目标主机,不需要
http://
或者https://
前缀支持域名或IPv4地址
最大长度:256字符
<path>:资源路径
默认值:”/”
<conn_type>:HTTP连接类型
1: HTTP
2: HTTPS(不校验证书)
3: HTTPS(用CA证书验证服务器证书)
4: HTTPS(提供客户端证书给服务器验证)
5: HTTPS(双向认证,3和4的合集)
<cert_index>:安全证书套件索引,参考 AT安全证书
[1-10]
仅<conn_type>是3-5时需要
<req_header_cnt>:
请求头的总数
<req_header>:
实际的请求头,可发送多个
错误代码
1: 参数错误
2: 内存分配错误
3: 读取安全证书套件失败
4: 发送HTTP GET头失败
5: 读取HTTP响应失败
示例
GET请求示例:
AT+HTTPGET=httpbin.org,/get,1
+HTTPGET: HEADER LEN = 230
+HTTPGET: HEADER DUMP START
HTTP/1.1 200 OK
Date: Mon, 06 Jan 2025 07:53:34 GMT
Content-Type: application/json
Content-Length: 196
Connection: keep-alive
Server: gunicorn/19.9.0
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
+HTTPGET: HEADER DUMP END
+HTTPGET: BODY DUMP START
{
"args": {},
"headers": {
"Host": "httpbin.org",
"X-Amzn-Trace-Id": "Root=1-677b8bfe-6faa4a9d7264e26b46397567"
},
"origin": "98.98.48.11",
"url": "http://httpbin.org/get"
}
+HTTPGET: BODY DUMP END
+HTTPGET: BODY LEN = 196
OK
AT+HTTPPOST
功能说明
用 透传(TT)模式 发送HTTP POST请求。
备注
该命令仅支持在 主控控制模式 下使用。
命令格式
AT+HTTPPOST=<host>,<path>,<conn_type>[,<cert_index>],<body_size>[,<req_header_cnt>,<req_header>...<req_header>]
备注
如果该命令有指定参数请求头,那么会和 AT+HTTPHEADER 配置的全局请求头一起添加到HTTP报文中。
响应格式
成功响应:
>>>
<Post消息内容>
+HTTPPOST: HEADER LEN = <消息头长度>
+HTTPPOST: HEADER DUMP START
<消息头内容>
+HTTPPOST: HEADER DUMP END
+HTTPPOST: BODY DUMP START
<消息体内容>
+HTTPPOST: BODY DUMP END
+HTTPPOST: BODY LEN = <消息体长度>
OK
错误响应:
ERROR:<error_no>
参数
<host>:目标主机,不需要
http://
或者https://
前缀支持域名或IPv4地址
最大长度:256字符
<path>:资源路径
默认值:”/”
<conn_type>:HTTP连接类型
1: HTTP
2: HTTPS(不校验证书)
3: HTTPS(用CA证书验证服务器证书)
4: HTTPS(提供客户端证书给服务器验证)
5: HTTPS(双向认证,3和4的合集)
<cert_index>:安全证书套件索引,参考 AT安全证书
[1-10]
仅<conn_type>是3-5时需要
<body_size>:要POST的HTTP数据长度
长度无限制
<req_header_cnt>:
请求头的总数
<req_header_cnt>:
请求头的总数
<req_header>:
实际的请求头,可发送多个
错误代码
1: 参数错误
2: 内存分配错误
3: 读取安全证书套件失败
4: 发送HTTP POST头失败
5: TT模式下获取数据失败
6: 发送HTTP POST主体数据失败
7: 读取HTTP响应失败
示例
POST请求示例:
AT+HTTPPOST=httpbin.org,/post,2,,35,2,Connection: close,User-Agent: Ameba_iot
>>>
param1=test_data1¶m2=test_data2
+HTTPPOST: HEADER LEN = 225
+HTTPPOST: HEADER DUMP START
HTTP/1.1 200 OK
Date: Mon, 06 Jan 2025 07:49:09 GMT
Content-Type: application/json
Content-Length: 359
Connection: close
Server: gunicorn/19.9.0
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
+HTTPPOST: HEADER DUMP END
+HTTPPOST: BODY DUMP START
{
"args": {},
"data": "param1=test_data1¶m2=test_data2",
"files": {},
"form": {},
"headers": {
"Content-Length": "35",
"Host": "httpbin.org",
"User-Agent": "Ameba_iot",
"X-Amzn-Trace-Id": "Root=1-677b8af2-73ea1c6e376e5d1e672893b5"
},
"json": null,
"origin": "98.98.48.11",
"url": "https://httpbin.org/post"
}
+HTTPPOST: BODY DUMP END
+HTTPPOST: BODY LEN = 357
OK
AT+HTTPPUT
功能说明
用 透传(TT)模式 发送HTTP PUT请求。
备注
该命令仅支持在 主控控制模式 下使用。
命令格式
AT+HTTPPUT=<host>,<path>,<conn_type>[,<cert_index>],<body_size>[,<req_header_cnt>,<req_header>...<req_header>]
备注
如果该命令有指定参数请求头,那么会和 AT+HTTPHEADER 配置的全局请求头一起添加到HTTP报文中。
响应格式
成功响应:
>>>
<Post消息内容>
+HTTPPUT: HEADER LEN = <消息头长度>
+HTTPPUT: HEADER DUMP START
<消息头内容>
+HTTPPUT: HEADER DUMP END
+HTTPPUT: BODY DUMP START
<消息体内容>
+HTTPPUT: BODY DUMP END
+HTTPPUT: BODY LEN = <消息体长度>
OK
错误响应:
ERROR:<error_no>
参数
<host>:目标主机,不需要
http://
或者https://
前缀支持域名或IPv4地址
最大长度:256字符
<path>:资源路径
默认值:”/”
<conn_type>:HTTP连接类型
1: HTTP
2: HTTPS(不校验证书)
3: HTTPS(用CA证书验证服务器证书)
4: HTTPS(提供客户端证书给服务器验证)
5: HTTPS(双向认证,3和4的合集)
<cert_index>:安全证书套件索引,参考 AT安全证书
[1-10]
仅<conn_type>是3-5时需要
<body_size>:要POST的HTTP数据长度
长度无限制
<req_header_cnt>:
请求头的总数
<req_header_cnt>:
请求头的总数
<req_header>:
实际的请求头,可发送多个
错误代码
1: 参数错误
2: 内存分配错误
3: 读取安全证书套件失败
4: 发送HTTP PUT头失败
5: TT模式下获取数据失败
6: 发送HTTP PUT主体数据失败
7: 读取HTTP响应失败
示例
PUT请求示例:
AT+HTTPPUT=httpbin.org,/put,2,,35,2,Connection: close,User-Agent: Ameba_iot
>>>
param1=test_data1¶m2=test_data2
+HTTPPUT: HEADER LEN = 225
+HTTPPUT: HEADER DUMP START
HTTP/1.1 200 OK
Date: Mon, 06 Jan 2025 07:50:05 GMT
Content-Type: application/json
Content-Length: 358
Connection: close
Server: gunicorn/19.9.0
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
+HTTPPUT: HEADER DUMP END
+HTTPPUT: BODY DUMP START
{
"args": {},
"data": "param1=test_data1¶m2=test_data2",
"files": {},
"form": {},
"headers": {
"Content-Length": "35",
"Host": "httpbin.org",
"User-Agent": "Ameba_iot",
"X-Amzn-Trace-Id": "Root=1-677b8b2a-30de8616008ca27e176ccda2"
},
"json": null,
"origin": "98.98.48.11",
"url": "https://httpbin.org/put"
}
+HTTPPUT: BODY DUMP END
+HTTPPUT: BODY LEN = 356
OK
AT+HTTPDEL
功能说明
删除指定的HTTP资源。
命令格式
AT+HTTPDEL=<host>,<path>,<conn_type>[,<cert_index>][,<req_header_cnt>,<req_header>...<req_header>]
备注
如果该命令有指定参数请求头,那么会和 AT+HTTPHEADER 配置的全局请求头一起添加到HTTP报文中。
响应格式
成功响应:
+HTTPDEL: HEADER LEN = <消息头长度>
+HTTPDEL: HEADER DUMP START
<消息头内容>
+HTTPDEL: HEADER DUMP END
+HTTPDEL: BODY DUMP START
<消息体内容>
+HTTPDEL: BODY DUMP END
+HTTPDEL: BODY LEN = <消息体长度>
OK
错误响应:
ERROR:<error_no>
参数
<host>:目标主机,不需要
http://
或者https://
前缀支持域名或IPv4地址
最大长度:256字符
<path>:资源路径
默认值:”/”
<conn_type>:HTTP连接类型
1: HTTP
2: HTTPS(不校验证书)
3: HTTPS(用CA证书验证服务器证书)
4: HTTPS(提供客户端证书给服务器验证)
5: HTTPS(双向认证,3和4的合集)
<cert_index>:安全证书套件索引,参考 AT安全证书
[1-10]
仅<conn_type>是3-5时需要
<req_header_cnt>:
请求头的总数
<req_header>:
实际的请求头,可发送多个
错误代码
1: 参数错误
2: 内存分配错误
3: 读取安全证书套件失败
4: 发送HTTP DELETE头失败
5: 读取HTTP响应失败
示例
DELETE请求示例:
AT+HTTPDEL=httpbin.org,/delete,2
+HTTPDEL: HEADER LEN = 230
+HTTPDEL: HEADER DUMP START
HTTP/1.1 200 OK
Date: Mon, 06 Jan 2025 07:51:15 GMT
Content-Type: application/json
Content-Length: 263
Connection: keep-alive
Server: gunicorn/19.9.0
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
+HTTPDEL: HEADER DUMP END
+HTTPDEL: BODY DUMP START
{
"args": {},
"data": "",
"files": {},
"form": {},
"headers": {
"Host": "httpbin.org",
"X-Amzn-Trace-Id": "Root=1-677b8b73-43851d66543b1a534698c987"
},
"json": null,
"origin": "98.98.48.11",
"url": "https://httpbin.org/delete"
}
+HTTPDEL: BODY DUMP END
+HTTPDEL: BODY LEN = 263
OK