2011-12-31 11 views
35

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

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

Làm thế nào tôi có thể thêm tiêu đề cho request.postrequest.get nói rằng tôi cần phải thêm foobar chủ chốt trong mỗi yêu cầu trong tiêu đề.

+0

có thể trùng lặp của [Sử dụng tiêu đề với Python yêu cầu method get thư viện] (https://stackoverflow.com/questions/6260457/using-headers-with-the-python -requ ests-librarys-get-method) –

Trả lời

75

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 tiêu đề của bạn (key: cặp giá trị mà chìa khóa là tên của tiêu đề và giá trị là, tốt, giá trị của cặp) và chuyển thông số đó vào tham số tiêu đề trên phương thức .get hoặc .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) 
+0

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 sử dụng nâng cao yêu cầu] (http://docs.python-requests.org/en/master/user/advanced/#request-and-response-objects), sử dụng 'r.headers' để truy cập các tiêu đề 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

9

Bạn cũng có thể làm điều này để thiết lập một tiêu đề cho tất cả tương lai được cho đối tượng Session, trong đó x-test sẽ được trong tất cả s.get() cuộc gọi :

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