การเพิ่มส่วนหัวให้กับโมดูลคำขอ python


109

ก่อนหน้านี้ฉันใช้httplibโมดูลเพื่อเพิ่มส่วนหัวในคำขอ ตอนนี้ฉันกำลังลองสิ่งเดียวกันกับrequestsโมดูล

นี่คือโมดูลคำขอ python ที่ฉันใช้: http://pypi.python.org/pypi/requests

ฉันจะเพิ่มส่วนหัวในrequest.postและrequest.getบอกว่าฉันต้องเพิ่มfoobarคีย์ในแต่ละคำขอในส่วนหัวได้อย่างไร


คำตอบ:


189

จาก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)

คุณเพียงแค่ต้องสร้างคำสั่งด้วยส่วนหัวของคุณ (คีย์: คู่ค่าโดยที่คีย์คือชื่อของส่วนหัวและค่าคือค่าของคู่) และส่งคำสั่งนั้นไปยังพารามิเตอร์ส่วนหัวบน.getหรือ.postวิธีการ

เฉพาะเจาะจงมากขึ้นสำหรับคำถามของคุณ:

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

2
การดูคำตอบที่คุณส่งและ / หรือรับกลับมาอาจเป็นประโยชน์ ตามเอกสารการใช้งานขั้นสูงของคำขอใช้r.headersเพื่อเข้าถึงส่วนหัวที่เซิร์ฟเวอร์ส่งกลับและr.request.headersเพื่อดูส่วนหัวที่คุณกำลังส่งไปยังเซิร์ฟเวอร์
harperville

46

คุณยังสามารถทำได้เพื่อตั้งค่าส่วนหัวสำหรับการรับในอนาคตทั้งหมดสำหรับวัตถุเซสชันโดยที่ x-test จะอยู่ในการเรียก 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'})

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.