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配网操作如图所示: .. figure:: ./../../_static/at_http_cwstartsmart1.png :align: center :alt: step_1 :figclass: align-center step 1 .. figure:: ./../../_static/at_http_cwstartsmart2.png :align: center :alt: step_2 :figclass: align-center step 2 ---------------------------------------------------- AT+CWSTOPSMART:停止配网 ---------------------------------------------------- **执行命令** 命令: :: AT+CWSTOPTSMART 返回: :: OK