2017-12-15 28 views
1

私はPythonを使用してリクエストを実行しようとしています。このAPIは、新しいセンサーを作成するために、Pythonを使用したAPIリクエスト

curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' -d '{ \ 
    "$class": "org.acme.model.sensor", \ 
    "sensorId": "1", \ 
    "type": "Temperature", \ 
    "value": "10", \ 
    "timestamp": 1234123 \ 
}' 'http://localhost:3000/api/sensor' 

を使用します。さて、消去用

data = { 
    "$class": "org.acme.model.sensor", 
    "sensorId": "", #change in the loop with i 
    "type": "Temperature", 
    "value": "10", 
    "timestamp": 382453824 
} 

header = { 
    "Content-Type" : "application/json", 
    "Accept":"application/json" 
} 

url = "http://localhost:3000/api/sensor" 
for i in range(2): 
    data["sensorId"]=str(i+1) 
    response = requests.post(url, data=data, headers=header) 

    #Now I modify the data 
    data["Temperature"]="50" 
    response = requests.put(url, data=data, headers=header) 

for i in range(2): 
    url="http://localhost:3000/api/sensor/"+str(i+1) 
    response = requests.delete(url) 

をカールすると、それはPythonコードで正常に動作しますが、何も私は、Pythonでそれをやろうとしていないと私は、概念実証を作成しました。オブジェクトの作成にも失敗します。

+1

私は本当にこれでうまくいきませんでしたが、私は最近、 'data = data'ではなく' json = data'をPOSTで使用しなければならない問題がありました。 – orangeInk

+0

どうして失敗するのですか?トレースバックは何ですか? –

+0

jsonを使用していますが、温度を50に変更できません。 –

答えて

0
import requests 
import json 

header = { 
"Content-Type" : "application/json", 
"Accept":"application/json" 
} 

あなたは、私はそれはそれを解決すべきだと思うjson.dumpsを使用して、適切なフォーマットにあなたの辞書を変換する必要があり、request.postの代わりdelete

request_url = 'YOUR_END_POINT' 
data = json.dumps(data) 
response = requests.post(url=request_url,data=data,headers=headers) 

を使用する必要があります。

関連する問題