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.

discky
sumber
Kemungkinan duplikat dari Menggunakan header dengan metode get pustaka permintaan Python
Cees Timmerman

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)
tkone
sumber
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

nommer
sumber