menambahkan header ke modul permintaan python


108

Sebelumnya saya menggunakan httplibmodul untuk menambahkan header dalam permintaan. Sekarang saya mencoba hal yang sama dengan requestsmodul.

Ini adalah modul permintaan python yang saya gunakan: http://pypi.python.org/pypi/requests

Bagaimana saya bisa menambahkan header ke request.postdan request.getmengatakan saya harus menambahkan foobarkunci di setiap permintaan di header.


Jawaban:


188

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

Anda hanya perlu membuat dict dengan header Anda (key: value pair di mana kuncinya adalah nama header dan nilainya adalah, well, value of the pair) dan meneruskan dict itu ke parameter header pada metode .getatau .post.

Jadi lebih spesifik untuk pertanyaan Anda:

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

2
Mungkin berguna untuk melihat tanggapan yang Anda kirim dan / atau terima kembali. Menurut dokumen Permintaan Penggunaan Lanjutan , gunakan r.headersuntuk mengakses header yang dikirim kembali oleh server dan r.request.headersuntuk melihat header yang Anda kirim ke server.
harperville

44

Anda juga bisa melakukan ini untuk menyetel header untuk semua perolehan masa depan untuk objek Session, di mana x-test akan ada di semua panggilan 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'})

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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.