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