2017-07-30 19 views
-2

エンドポイントとトピック名をハードコードしないでHTTP POSTメッセージを送信する手順はありますか。 メッセージを変数として指定できますが、エンドポイントとトピックは指定できません。PythonでのAWS IoT 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エンドポイントを与える:

このコードは絶対に正常に動作していますか?

答えて

0

トピック名とAWSエンドポイントを変数として格納します。&を連結してURLを構成します。投稿要求にそれを使用します。

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

必要に応じて、POST要求(証明書、データなど)に追加パラメータを渡すことができます。

+0

ありがとう:) それは働いた –