HTTP指令集

AT+HTTPCLIENT:发送 HTTP 客户端请求

执行命令

命令:

AT+HTTPCLIENT=<opt>,<content-type>,<url>,[<host>],[<path>],<transport_type>[,<data>][,<http_req_header>][,<http_req_header>][...]

返回:

+HTTPCLIENT:<size>,<data>
OK
//<size>:size为接收数据的长度。
//<data>:data为服务端响应的数据。

参数

  • <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 参数不为空,HTTP 客户端将使用它并忽略 host 参数和 path 参数;如果 url 参数被省略或字符串为空,HTTP 客户端将使用 host 参数和 path 参数。

示例

//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

TLS示例:
//GET 请求
AT+HTTPCLIENT=2,0,https://www.baidu.com/,www.baidu.com,/,2

//POST 请求
AT+HTTPCLIENT=3,0,https://www.baidu.com/,www.baidu.com,/,2,hello

AT+HTTPGETSIZE:获取 HTTP 资源大小

执行命令

命令:

AT+HTTPGETSIZE=<url>

返回:

+HTTPGETSIZE:<size>
OK
//<size>:url资源的大小

参数

  • <url>:HTTP URL

示例

AT+HTTPGETSIZE=http://www.baidu.com/img/bdlogo.gif

AT+HTTPCPOST:Post 指定长度的 HTTP 数据

执行命令

命令:

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 数据长度。最大长度2k

  • <http_req_header_cnt>:<http_req_header> 参数的数量

  • [<http_req_header>]:可发送多个请求头给服务器

示例

AT+HTTPCPOST=http://httpbin.org/post,27

>
field1=value1&field2=value2

说明

  • 当post发送数据时,> 后面输入数据的时候不能带\r\n。

AT+HTTPCERT:写CA证书数据到设备

执行命令

命令:

AT+HTTPCERT=<type>,<length>

返回:

OK

参数

  • <type>:写入证书方式

    • 1: 根据length的长度来写证书数据ram中。

    • 2: 根据串口发送数据的长度的来写证书数据到ram中。

  • <length>:根据type传过来的值进行设置,如果传1,则要知道证书的大小,传对应的值,如果传2,则任意值都可以,但需要一次性把证书的数据全部发送。

示例

AT+HTTPSCERT=1,1280

-----BEGIN CERTIFICATE-----
MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG
A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw
MDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i
YWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT
aWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ
jc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp
xy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp
1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG
snUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ
U26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8
9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E
BTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B
AQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz
yj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE
38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP
AbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad
DKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME
HMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
-----END CERTIFICATE-----

AT+HTTPSCERT=2,0

-----BEGIN CERTIFICATE-----
MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG
A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw
MDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i
YWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT
aWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ
jc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp
xy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp
1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG
snUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ
U26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8
9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E
BTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B
AQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz
yj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE
38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP
AbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad
DKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME
HMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
-----END CERTIFICATE-----

AT+OTA:设备OTA升级

执行命令

命令:

AT+OTA=<url>

返回:

OK
//同时去下载升级文件到FLASH,下载完成之后启动bootloader进行升级。

参数

  • <url>:升级文件的HTTP URL

示例

AT+OTA=http://192.168.0.104/beken7231_bsp.rbl

AT+CWSTARTSMART:设备配网选择

执行命令

命令:

AT+CWSTARTSMART=<type>,<auth floor>

返回:

OK

参数

  • <type>:类型

    • 1: ble

    • 2: AirKiss

    • 3:ble+AirKiss

  • <auth floor>: Wi-Fi 认证模式阈值,暂不用此值,默认0

    • 0: OPEN(默认)

    • 1: WEP

    • 2: WPA_PSK

    • 3: WPA2_PSK

    • 4: WPA_WPA2_PSK

    • 5: WPA2_ENTERPRISE

    • 6: WPA3_PSK

    • 7: WPA2_WPA3_PSK

示例

AT+CWSTARTSMART =1,0
AT+CWSTARTSMART =2,0
AT+CWSTARTSMART =3,0

说明

  • airkiss配网是通过微信小程序物联网常用开发工具里面的airkiss配网,设备发送AT指令后在小程序输入账号和密码即可。

  • BLE配网是设备通过AT指令发送ble广播名7238,NRF connect连上设备的蓝牙广播之后选择发送数据到设备,数据格式选择TEXT,数据参考如下:012TP-LINK_10860812345678

    • 第一个字节为数据类型,默认是0表示发送账号和密码。

    • 第二三个字节为ssid长度ssid_len如:12。

    • 第四到第N字节是通过ssid获取ssid的字串如TP-LINK_1086。

    • 第ssid_len+3+1个字节到ssid_len+3+2字节是passwd长度password_len如:08。

    • 第ssid_len+5+1个字节开始到ssid_len+5+1+password_len是passwd字串如:12345678。

Ble配网操作如图所示:

step_1

step 1

step_2

step 2

AT+CWSTOPSMART:停止配网

执行命令

命令:

AT+CWSTOPTSMART

返回:

OK