Cách đơn giản nhất để cài đặt thư viện Request đó là sử dụng chương trình pipenv
.
Việc cài đặt pipenv
có thể được thực hiện một cách đơn giản thông qua pip
:
$ pip install pipenv
Ngoài ra, nếu bạn sử dụng Mac OSX thì việc cài đặt pipenv
khá đơn giản thông qua HomeBrew:
$ brew install pipenv
Sau khi đã có pipenv
chúng ta sẽ thực hiện việc cài đặt thư viện Requests. Mở cửa sổ dòng lệnh và chạy câu lệnh sau:
$ pipenv install requests
Sau khi hoàn tất việc cài đặt thì bây giờ chúng ta đã sẵn sàng để bắt đầu sử dụng thư viện này. Ở phần tiếp theo sau tôi sẽ chạy code Python trong interactive, tuy nhiên nếu muốn bạn có thể tạo file chương trình python riêng để chạy code. Để truy cập vào Python interactive mode bạn chạy câu lệnh python
trên cửa sổ dòng lệnh.
Trước tiên chúng ta cần import thư viện Requests vào sử dụng trong chương trình:
>>> import requests
Để gửi một HTTP GET request tới địa chỉ URL là https://www.codehubnv./bai-viet
:
>>> res = requests.get('https://www.codehubnv./bai-viet')
Sau khi chạy câu lệnh trên biến res
lúc này sẽ chứa thông tin response trả về từ server. Để xem dữ liệu của response trả về dưới định dạng văn bản chúng ta sử dụng câu lệnh:
>>> res.text
Chúng ta có thể thêm query parameter trong GET request trực tiếp trong URL:
>>> res = requests.get('https://www.codehub.vn/bai-viet?page=10')
Hoặc bạn cũng có thể sử dụng cách khác như sau:
>>> payload = {'page': '10'}
>>> res = requests.get('https://www.codehub.vn/bai-viet', params=payload)
Kiểm tra URL của request:
>>> print(res.url) // https://www.codehub.vn/bai-viet?page=10
Ở ví dụ dưới đây chúng ta sẽ gửi HTTP POST request tới địa chỉ URL là https://codehub.vn/login
với hai trường dữ liệu là username
và passoword
:
>>> data = {'username':'test_user', 'password': 'test_pass'}
>>> res = requests.post('http://httpbin.org/post', data = data)
Request được thực hiện bởi Python ở đoạn code trên sẽ tương tự trường hợp khi bạn truy cập trang login điền các dữ liệu cho 2 trường username
và passowrd
vào HTML form và nhấp Enter để trình duyệt gửi request tới server.
Để gửi POST request với giá trị của trường Content-Type
trong HTTP header là application/json
thì chúng ta cần sử dụng parameter là json
thay vì data
:
>>> data = {'username':'test_user', 'password': 'test_pass'}
>>> res = requests.post('http://httpbin.org/post', json = data)
Nếu cả 2 parameter data
và json
đều được sử dụng khi gửi POST request thì parameter data
sẽ được chọn:
>>> res = requests.post('http://httpbin.org/post', data=someData, json = someData)
Để upload một file lên server sử dụng POST request chúng ta sẽ cần chuyền vào giá trị cho tham số files
. Giá trị này là một dictionary với tên trường dùng để xác định file được tải lên và giá trị là file object tương ứng:
>>> url = 'http://httpbin.org/post'
>>> files = {'test_1': open('test_1.txt', 'rb'), 'test2': open('test_2.txt', 'rb')}
>>> r = requests.post(url, files=files)
Các request dạng này tương tự như GET request mà chúng ta đã tham khảo ở mục trước:
>>> r = requests.put('http://httpbin.org/put', data = {'key':'value'})
>>> r = requests.delete('http://httpbin.org/delete')
>>> r = requests.head('http://httpbin.org/get')
>>> r = requests.options('http://httpbin.org/get')
Để lấy ra nội dung của response trả về dạng văn bản:
>>> res = requests.get('https://www.codehub.vn/bai-viet')
>>> res.text
Trường hợp văn bản trả về trong response có định dạng JSON thì lúc này chúng ta có thể decode dữ liệu này như sau:
>>> res = requests.get('https://www.codehub.vn/bai-viet')
>>> res. json()
Để kiểm tra HTTP status code của response trả về cho request:
>>> res = requests.get('https://www.codehub.vn/bai-viet')
>>> res.status_code
200
» Tin mới nhất:
» Các tin khác: