APIにリクエストを送信しようとしていますが、次の本文を渡す必要があります。
{
"description":"Tenaris",
"ticker":"TS.BA",
"industry":"Metalúrgica",
"currency":"ARS"
}
コードは正しいようで、「プロセスは終了コード0で終了しました」で終了しましたが、うまく機能していません。何が欠けているのかわかりませんが、これが私のコードです。
http = urllib3.PoolManager()
http.urlopen('POST', 'http://localhost:8080/assets', headers={'Content-Type':'application/json'},
data={
"description":"Tenaris",
"ticker":"TS.BA",
"industry":"Metalúrgica",
"currency":"ARS"
})
ちなみに、これはPythonで作業する最初の日なので、十分に具体的でない場合はすみません。
JSONリクエストを渡そうとしているので、本文をJSONとしてエンコードし、body
フィールドで渡す必要があります。
あなたの例では、次のようなことをしたいとします。
import json
encoded_body = json.dumps({
"description": "Tenaris",
"ticker": "TS.BA",
"industry": "Metalúrgica",
"currency": "ARS",
})
http = urllib3.PoolManager()
r = http.request('POST', 'http://localhost:8080/assets',
headers={'Content-Type': 'application/json'},
body=encoded_body)
print r.read() # Do something with the response?
編集:私の元の答えは間違っていました。 JSONをエンコードするように更新しました。また、関連する質問: 生のPOSTデータをurllib3に渡すにはどうすればよいですか?