Anfragen - HTTP-Anforderungsheader
Im vorherigen Kapitel haben wir gesehen, wie Sie die Anfrage stellen und die Antwort erhalten. In diesem Kapitel wird im Header-Bereich der URL etwas näher darauf eingegangen. Wir werden uns also mit Folgendem befassen:
- Grundlegendes zu Anforderungsheadern
- Benutzerdefinierte Header
- Antwortheader
Grundlegendes zu Anforderungsheadern
Klicken Sie auf eine beliebige URL im Browser, überprüfen Sie sie und überprüfen Sie die Registerkarte Netzwerk des Entwicklertools.
Sie erhalten Antwortheader, Anforderungsheader, Nutzdaten usw.
Betrachten Sie beispielsweise die folgende URL:
https://jsonplaceholder.typicode.com/users
Sie können die Header-Details wie folgt abrufen:
Beispiel
import requests
getdata = requests.get('https://jsonplaceholder.typicode.com/users',
stream = True)
print(getdata.headers)
Ausgabe
E:\prequests>python makeRequest.py
{'Date': 'Sat, 30 Nov 2019 05:15:00 GMT', 'Content-Type': 'application/json;
charset=utf-8', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive',
'Set-Cookie': '__cfduid=d2b84ccf43c40e18b95122b0b49f5cf091575090900; expires=Mon, 30-De
c-19 05:15:00 GMT; path=/; domain=.typicode.com; HttpOnly', 'X-Powered-By':
'Express', 'Vary': 'Origin, Accept-Encoding', 'Access-Control-Allow-Credentials': 't
rue', 'Cache-Control': 'max-age=14400', 'Pragma': 'no-cache', 'Expires': '-1', '
X-Content-Type-Options': 'nosniff', 'Etag': 'W/"160d-1eMSsxeJRfnVLRBmYJSbCiJZ1qQ
"', 'Content-Encoding': 'gzip', 'Via': '1.1 vegur', 'CF-Cache-Status': 'HIT',
'Age': '2271', 'Expect-CT': 'max-age=604800,
report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"', 'Server': 'cloudflare', 'CF-RAY': '53da574f
f99fc331-SIN'}
Um einen http-Header zu lesen, gehen Sie wie folgt vor:
getdata.headers["Content-Encoding"] // gzip
Benutzerdefinierte Header
Sie können auch Header an die aufgerufene URL senden, wie unten gezeigt.
Beispiel
import requests
headers = {'x-user': 'test123'}
getdata = requests.get('https://jsonplaceholder.typicode.com/users',
headers=headers)
Die übergebenen Header müssen im String-, Bytestring- oder Unicode-Format vorliegen. Das Verhalten der Anforderung ändert sich nicht gemäß den übergebenen benutzerdefinierten Headern.
Antwortheader
Die Antwortheader sehen wie folgt aus, wenn Sie die URL im Browser-Entwicklertool auf der Registerkarte "Netzwerk" überprüfen.
Um die Details der Header aus dem Anforderungsmodul abzurufen, verwenden Sie. Response.headers sind wie unten gezeigt -
Beispiel
import requests
getdata = requests.get('https://jsonplaceholder.typicode.com/users')
print(getdata.headers)
Ausgabe
E:\prequests>python makeRequest.py
{'Date': 'Sat, 30 Nov 2019 06:08:10 GMT', 'Content-Type': 'application/json;
charset=utf-8', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive',
'Set-Cookie': '__cfduid=de1158f1a5116f3754c2c353055694e0d1575094090; expires=Mon,
30-Dec-19 06:08:10 GMT; path=/; domain=.typicode.com; HttpOnly', 'X-Powered-By':
'Express', 'Vary': 'Origin, Accept-Encoding', 'Access-Control-Allow-Credentials': 't
rue', 'Cache-Control': 'max-age=14400', 'Pragma': 'no-cache', 'Expires': '-1', '
X-Content-Type-Options': 'nosniff', 'Etag': 'W/"160d-1eMSsxeJRfnVLRBmYJSbCiJZ1qQ
"', 'Content-Encoding': 'gzip', 'Via': '1.1 vegur', 'CF-Cache-Status': 'HIT',
'Age': '5461', 'Expect-CT': 'max-age=604800, report-uri="https://report-uri.cloudf
lare.com/cdn-cgi/beacon/expect-ct"', 'Server': 'cloudflare', 'CF-RAY': '53daa52f
3b7ec395-SIN'}
Sie können jeden gewünschten Header wie folgt erhalten:
print(getdata.headers["Expect-CT"])
Ausgabe
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/exp
ect-ct
You can also get the header details by using the get() method.
print(getdata.headers.get("Expect-CT"))
Ausgabe
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/exp
ect-ct