Python 中的 AWS IoT HTTP POST 请求?

AWS IoT HTTP POST Request in Python?

是否有发送 HTTP POST 消息而无需硬编码端点和主题名称的过程。 我可以将消息作为变量提供,但不能提供端点和主题。

此代码运行良好:

import requests

caPath = "aws-iot-rootCA.crt"
certPath = "cert.pem.crt"
keyPath = "privkey.pem.crt"

parameters = (
    ('qos', '1'),
)
payload= """{
  "message": "Hello"
}"""

r = requests.post('https://******endpoint*****.us-west-2.amazonaws.com:8443/topics/TopicName',
    params=parameters,,data=payload,
    cert=(certPath,keyPath,caPath))

但是如何将主题名称和 AWS 端点作为变量?

将主题名称和 AWS 端点存储为变量并将它们连接起来形成 url。在 post 请求中使用它。

endpoint='https://******endpoint*****.us-west-2.amazonaws.com:8443'
topic='TopicName'
url= endpoint+'/topics/'+topic
r= requests.post(url,params=parameters)

您可以根据需要在 POST 请求中传递其他参数(证书、数据等)。