Restful client

Ngày nay, với sự phong phú của các ứng dụng và nhu cầu kết nối ngày càng lớn thì Restful là một trong những mô hình web service được nhiều công ty sử dụng. Do đó, việc có thể kết nối đến các Restful web service là một kỹ năng cần thiết cho các lập trình viên.

Chương này sẽ giới thiệu về một trong những thư viện nổi tiếng nhất trong Python để làm việc với các Restful web service, đó là requests.

Website chính thức và các mô tả đầy đủ đều được đề cập tại http://www.python-requests.org/

Cài đặt

Cài đặt nhanh chóng thông qua pip như sau:

$ sudo pip install requests

Request

Hỗ trợ sẵn các phương thức tương ứng cho Http request như GET, POST, PUT, DELETE...

import requests

r = requests.get('https://api.github.com/events')
r = requests.post("http://httpbin.org/post")
r = requests.put("http://httpbin.org/put")
r = requests.delete("http://httpbin.org/delete")
r = requests.head("http://httpbin.org/get")
r = requests.options("http://httpbin.org/get")

GET Query String

Đối với các request GET , có thể truyền tham số đường dẫn thông qua tham số params khi gọi phương thức get().

Ví dụ:

import requests

payload = {'key1': 'value1', 'key2': 'value2'}

r = requests.get("http://lamsaodecode.blogspot.com/get", params =
payload)
print(r.url)
# Hiển thị: http://lamsaodecode.blogspot.com/get?key2=value2&key1=value1

Request Body

Trong hầu hết trường hợp các request như POST, PUT thương cần truyền dữ liệu khi request, có thể sử dụng tham số data để truyền data lên kèm request.

Ví dụ:

import requests

payload = {'key1': 'value1', 'key2': 'value2'}

r = requests.post("http://lamsaodecode.blogspot.com/post", data = payload)

Upload File

Có thể gởi thêm tham số files để upload file kèm theo request.

import requests

url = 'http://lamsaodecode.blogspot.com/post'
files = {'file': open('report.xls', 'rb')}

r = requests.post(url, files=files)

Responsive

Sau khi gọi các phương thức tương ứng để request, bạn sẽ có đối tượng thuộc class Response. Đối tượng này có một số thông tin như sau:

  • status_code HTTP Status server trả về.

  • headers Các thông tin header mà server trả về dưới dạng Dictionary.

  • cookies Nếu server có trả về cookie thì có thể sử dụng thuộc tính này để lấy các cookie.

  • text Trả về nội dung response.

Tham khảo về các tính năng khác của thư viện requests tại website chính thức. http://docs.python-requests.org

Follower me

Last updated