Hinzufügen eines Headers zum Python-Anforderungsmodul


108

Früher habe ich das httplibModul verwendet, um der Anfrage einen Header hinzuzufügen. Jetzt versuche ich das gleiche mit dem requestsModul.

Dies ist das Python-Anforderungsmodul, das ich verwende: http://pypi.python.org/pypi/requests

Wie kann ich dem Header einen Header hinzufügen request.postund request.getsagen, dass ich foobarbei jeder Anforderung im Header einen Schlüssel hinzufügen muss ?


Antworten:


188

Von 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)

Sie müssen nur ein Diktat mit Ihren Headern erstellen (Schlüssel: Wert-Paare, wobei der Schlüssel der Name des Headers und der Wert der Wert des Paares ist) und dieses Diktat an den Header-Parameter auf dem .getoder übergeben.post Methode .

Also genauer auf Ihre Frage:

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

2
Es kann hilfreich sein, die Antwort zu sehen, die Sie senden und / oder empfangen. Verwenden Sie gemäß den Dokumenten zur erweiterten Verwendung von Anforderungenr.headers den Zugriff auf die vom Server zurückgesendeten r.request.headersHeader und die Anzeige der Header, die Sie an den Server senden.
Harperville

44

Sie können dies auch tun, um einen Header für alle zukünftigen Abrufe für das Session-Objekt festzulegen, wobei x-test in allen s.get () -Aufrufen enthalten ist:

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'})

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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.