Pythonリクエストモジュールにヘッダーを追加する


108

以前httplib、モジュールを使用してリクエストにヘッダーを追加しました。今、私はrequestsモジュールで同じことを試しています。

これは私が使用しているpythonリクエストモジュールです:http : //pypi.python.org/pypi/requests

どのようにしてヘッダーをに追加し、ヘッダー内の各リクエストにキーを追加する必要があるrequest.postrequest.get言いますか?foobar


回答:


188

http://docs.python-requests.org/en/latest/user/quickstart/から

url = 'https://api.github.com/some/endpoint'
payload = {'some': 'data'}
headers = {'content-type': 'application/json'}

r = requests.post(url, data=json.dumps(payload), headers=headers)

ヘッダー(キー:値のペア、キーはヘッダーの名前、値はペアの値)を使用してdictを作成し、そのdictを.getまたは.postメソッドのheadersパラメーターに渡すだけです。

あなたの質問にもっと具体的に:

headers = {'foobar': 'raboof'}
requests.get('http://himom.com', headers=headers)

2
送信および/または受信した応答を確認すると役立つ場合があります。Requests Advanced Usage docsによると、を使用r.headersして、サーバーが返信するヘッダーにアクセスし、サーバーに送信r.request.headersするヘッダーを表示します。
harperville、2016年

44

これを実行して、Sessionオブジェクトの今後のすべての取得のヘッダーを設定することもできます。x-testはすべてのs.get()呼び出しに含まれます。

s = requests.Session()
s.auth = ('user', 'pass')
s.headers.update({'x-test': 'true'})

# both 'x-test' and 'x-test2' are sent
s.get('http://httpbin.org/headers', headers={'x-test2': 'true'})

から:http : //docs.python-requests.org/en/latest/user/advanced/#session-objects

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.