urllib3 を使用して、JSON でエンコードされたデータを投稿しようとしています。POST ペイロードを、コンテンツ タイプが application/json の生の JSON 文字列にしたいだけです。これを行う方法がわかりません。
urllib3 のドキュメントでは、HTML フォームが URL で URL エンコードされる方法のように、「フィールド」、つまり (キー、値) のペアを持つディクテーションでデータを投稿する方法について説明しています。しかし、私はそれをしたくありません。
私が得ることができた最も近いものはこれです(私が見つけることができるどこにも文書化されていないので、データを置く場所を推測しました):
http = urllib3.PoolManager()
headers = urllib3.util.make_headers(basic_auth=key+":")
r = http.request_encode_body('POST', path, json.dumps(payload), headers=headers)
これにより、この urllib3 エラーが発生します。
File "C:\Python27\lib\site-packages\urllib3-1.7.1-py2.7.egg\urllib3\filepost.py", line 44, in iter_field_objects
yield RequestField.from_tuples(*field)
TypeError: from_tuples() takes exactly 3 arguments (2 given)
ご指摘ありがとうございます。