ESP32 MicroPython:HTTP POST请求与HTTP GET请求

HTTP POST请求

设备需事先连网,将把HTTP POST请求发送至一个假的在线测试REST API
在此示例中,一条post对应一个表示用户写的(如在网站中)post的虚拟对象。另一方面,POST是我们将要使用的HTTP方法。

urequests模块

导入urequests模块,以获取执行HTTP POST请求所需的函数。

 import urequests

post函数

post函数发送请求。此函数以要发送HTTP post请求的URL作为输入值,其还可接收键-参数列形式的其他参数。

post函数是在其函数体部分调用request函数,此函数调用将返回一个Response类的对象,将其存储在变量中,以便稍后处理HTTP请求的结果。

即使我们继续发送请求,响应仍将保持不变,因为我们面对的是假的测试API。

response = urequests.post("http://jsonplaceholder.typicode.com/posts", data = "some dummy content")

获取请求的响应内容

print(response.text)
print(response.json())

在MicroPython中获取请求的响应内容,为此只需访问Response对象的text属性即可。由于响应类型为JSON,因此我们还可以视其为内容已解析的字典对象,通过Response对象(其在实现中使用ujson库)的json函数检索该响应。

获取的原始响应既可以是字符串格式,也可以是已解析的JSON对象。
ESP32 MicroPython:HTTP POST请求与HTTP GET请求_第1张图片

HTTP GET请求

连接到WiFi网络

导入urequests模块

import urequests

get函数

并将请求目标的URL作为输入值传递。调用get函数将返回一个Response类对象。

我们要通过HTTP GET请求访问的网站URL是http://jsonplaceholder.typicode.com/albums/1,你可以通过在web浏览器上访问该网站来查看预期结果。访问该网站时,这是虚拟相册对象的JSON结构。
ESP32 MicroPython:HTTP POST请求与HTTP GET请求_第2张图片

response = urequests.get('http://jsonplaceholder.typicode.com/albums/1')
print(type(response))

响应的实际内容

方法一

text属性

要访问HTTP请求响应的实际内容,只需访问其text属性。此属性会返回包含内容的字符串

print(response.text)
print(type(response.text))

访问json属性

该属性会返回包含已解析内容的字典

parsed = response.json()
print(type(parsed))

获取单独JSON值

通过字典对象上值的键来获取每个单独的JSON值。

 V print(parsed["userId"])
print(parsed["id"])
print(parsed["title"])

方法二

响应的content属性

另一个检索请求响应内容的方法是使用以字节为单位返回响应的content属性,以字节为单位。

print(response.content)
print(type(response.content))

status_code和reason属性

获取状态代码 和该代码的原因文本

print(response.status_code)
print(response.reason)

你可能感兴趣的:(esp32,python)