Używanie nagłówków z metodą get biblioteki żądań języka Python

Odpowiedzi:

281

Zgodnie z interfejsem API wszystkie nagłówki można przekazywać za pomocą request.get:

r=requests.get("http://www.example.com/", headers={"content-type":"text"})
cwallenpoole
źródło
14
Możesz sprawdzić wysłany nagłówek żądania http: print (r.request.headers)
nono
2
@Breedly Właściwe miejsce, właściwy czas. Historia mojego życia: niezwykłe szczęście połączone z mnóstwem ciężkiej pracy.
cwallenpoole
36

Wydaje się całkiem proste, zgodnie z dokumentami na stronie, z którą łączysz się (podkreślenie moje).

request.get (url, params = None, headers = None, cookies = None, auth = None, timeout = None)

Wysyła żądanie GET. Zwraca Responseobiekt.

Parametry:

  • url - adres URL nowego Requestobiektu.
  • params - (opcjonalne) Słownik parametrów GET do wysłania z Request.
  • headers - (opcjonalne) Słownik nagłówków HTTP do wysłania z rozszerzeniem Request.
  • cookies - (opcjonalnie) obiekt CookieJar do wysłania z rozszerzeniem Request.
  • auth - (opcjonalnie) AuthObject, aby włączyć podstawowe uwierzytelnianie HTTP.
  • timeout - (opcjonalne) Liczba zmiennoprzecinkowa opisująca limit czasu żądania.
John Flatness
źródło
3
Dzięki, ale tak naprawdę nie wiem zbyt wiele o składni Pythona. Po prostu rodzaj nauki. Następnym razem udawaj, że nic nie wiem i czytałem API jak koleś powyżej.
Breedly
2
W linku do dokumentacji jest literówka lub link jest martwy, oto nowy docs.python-requests.org/en/latest/api
Mutant
28

Ta odpowiedź nauczyła mnie, że możesz ustawić nagłówki dla całej sesji:

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

Bonus: sesje obsługują również pliki cookie.

Cees Timmerman
źródło