thêm tiêu đề vào mô-đun yêu cầu python


108

Trước đó, tôi đã sử dụng httplibmô-đun để thêm tiêu đề trong yêu cầu. Bây giờ tôi đang thử điều tương tự với requestsmô-đun.

Đây là mô-đun yêu cầu python mà tôi đang sử dụng: http://pypi.python.org/pypi/requests

Làm cách nào để thêm tiêu đề vào request.postrequest.getnói rằng tôi phải thêm foobarkhóa trong mỗi yêu cầu trong tiêu đề.


Câu trả lời:


188

Từ 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)

Bạn chỉ cần tạo một dict với các tiêu đề của mình (các cặp key: value trong đó key là tên của header và giá trị là giá trị của cặp) và truyền dict đó cho tham số headers trên phương thức .getor .post.

Vì vậy, cụ thể hơn cho câu hỏi của bạn:

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

2
Có thể hữu ích khi xem phản hồi bạn gửi và / hoặc nhận lại. Theo tài liệu Yêu cầu sử dụng nâng cao , sử dụng r.headersđể truy cập các tiêu đề mà máy chủ gửi lại và r.request.headersđể xem các tiêu đề bạn đang gửi đến máy chủ.
harperville

44

Bạn cũng có thể làm điều này để đặt tiêu đề cho tất cả các lần nhận trong tương lai cho đối tượng Session, nơi x-test sẽ nằm trong tất cả các lệnh gọi 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'})

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.