การใช้ส่วนหัวกับวิธีการรับของ Python ร้องขอไลบรารี


158

ดังนั้นเมื่อเร็ว ๆ นี้ฉันจึงสะดุดกับห้องสมุดที่ยอดเยี่ยมนี้สำหรับการจัดการคำขอ HTTP ใน Python; พบได้ที่นี่http://docs.python-requests.org/en/latest/index.html

ฉันชอบทำงานกับมัน แต่ฉันไม่สามารถหาวิธีเพิ่มส่วนหัวในคำขอของฉันได้ ช่วยด้วย?

คำตอบ:


281

ตามAPIส่วนหัวสามารถส่งผ่านทั้งหมดโดยใช้คำร้องขอ get:

r=requests.get("http://www.example.com/", headers={"content-type":"text"})

14
คุณสามารถตรวจสอบส่วนหัวของคำขอ http ที่ส่งไปทำ: พิมพ์ (r.request.headers)
nono

2
@Breedly สถานที่ที่เหมาะสมเวลาที่เหมาะสม เรื่องราวในชีวิตของฉัน: ความโชคดีจำนวนมากบวกกับการทำงานหนักมากมาย
cwallenpoole

36

ดูเหมือนว่าตรงไปตรงมาตามเอกสารในหน้าเว็บที่คุณเชื่อมโยง

คำร้องขอรับ (url, params = ไม่มี, ส่วนหัว = ไม่มี, คุกกี้ = ไม่มี, รับรองความถูกต้อง = ไม่มี, หมดเวลา = ไม่มี)

ส่งคำขอ GET ส่งคืนResponseวัตถุ

พารามิเตอร์:

  • url - URL สำหรับRequestวัตถุใหม่
  • params - (อุปกรณ์เสริม) พจนานุกรม GET Requestพารามิเตอร์ที่จะส่งด้วย
  • ส่วนหัว - (อุปกรณ์เสริม) พจนานุกรมส่วนหัว HTTP Requestเพื่อส่งด้วย
  • คุกกี้ - (อุปกรณ์เสริม) CookieJar Requestวัตถุที่จะส่งด้วย
  • รับรองความถูกต้อง - (ไม่บังคับ) AuthObject เพื่อเปิดใช้งานการตรวจสอบสิทธิ์ HTTP พื้นฐาน
  • หมดเวลา - (เป็นทางเลือก) ลอยอธิบายการหมดเวลาของคำขอ

3
ขอบคุณ แต่ฉันไม่รู้เกี่ยวกับไวยากรณ์ของ Python มากเกินไป เพียงแค่เรียนรู้ ครั้งต่อไปแกล้งทำเป็นไม่รู้อะไรเลยและอ่าน API เหมือนเพื่อนข้างบน
Breedly

2
มีการพิมพ์ผิดในลิงค์เอกสารหรือลิงค์ตายนี่คือdocs.python-requests.org/en/latest/api
Mutant

28

คำตอบนี้สอนฉันว่าคุณสามารถตั้งค่าส่วนหัวสำหรับเซสชันทั้งหมด:

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

โบนัส: เซสชันยังจัดการคุกกี้

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