Bài đăng này thảo luận về hai phương thức yêu cầu HTTP [Giao thức truyền siêu văn bản] các yêu cầu GET và POST trong Python và cách triển khai chúng trong python
HTTP là gì?
HTTP là một tập hợp các giao thức được thiết kế để cho phép giao tiếp giữa máy khách và máy chủ. Nó hoạt động như một giao thức yêu cầu phản hồi giữa máy khách và máy chủ
Trình duyệt web có thể là ứng dụng khách và ứng dụng trên máy tính lưu trữ trang web có thể là máy chủ
Vì vậy, để yêu cầu phản hồi từ máy chủ, chủ yếu có hai phương pháp
- ĐƯỢC. để yêu cầu dữ liệu từ máy chủ
- BƯU KIỆN. để gửi dữ liệu được xử lý đến máy chủ
Đây là sơ đồ đơn giản giải thích khái niệm cơ bản về phương thức GET và POST.
Bây giờ, để thực hiện các yêu cầu HTTP trong python, chúng ta có thể sử dụng một số thư viện HTTP như.
- httplib
- urllib
- yêu cầu
Thư viện thanh lịch và đơn giản nhất được liệt kê ở trên là Yêu cầu. Chúng tôi sẽ sử dụng thư viện yêu cầu trong bài viết này. Để tải xuống và cài đặt thư viện Yêu cầu, hãy sử dụng lệnh sau
pip install requests
HOẶC, tải xuống từ đây và cài đặt thủ công
Thực hiện yêu cầu Nhận
# importing the requests library
import
PARAMS = {'address':location}0
PARAMS = {'address':location}1
PARAMS = {'address':location}2
PARAMS = {'address':location}3_______1_______4
PARAMS = {'address':location}5
PARAMS = {'address':location}1
PARAMS = {'address':location}7
PARAMS = {'address':location}8
PARAMS = {'address':location}4
//maps.googleapis.com/maps/api/geocode/json?address=delhi+technological+university0
PARAMS = {'address':location}1
//maps.googleapis.com/maps/api/geocode/json?address=delhi+technological+university2
//maps.googleapis.com/maps/api/geocode/json?address=delhi+technological+university3
PARAMS = {'address':location}4
//maps.googleapis.com/maps/api/geocode/json?address=delhi+technological+university5
//maps.googleapis.com/maps/api/geocode/json?address=delhi+technological+university6
//maps.googleapis.com/maps/api/geocode/json?address=delhi+technological+university7
PARAMS = {'address':location}1
//maps.googleapis.com/maps/api/geocode/json?address=delhi+technological+university9
r = requests.get[url = URL, params = PARAMS]0_______1_______4
r = requests.get[url = URL, params = PARAMS]2
PARAMS = {'address':location}4
r = requests.get[url = URL, params = PARAMS]4
PARAMS = {'address':location}4
r = requests.get[url = URL, params = PARAMS]6
PARAMS = {'address':location}1
r = requests.get[url = URL, params = PARAMS]8
r = requests.get[url = URL, params = PARAMS]9_______1_______4
data = r.json[]1
PARAMS = {'address':location}1
PARAMS = {'address':location}1
data = r.json[]4
data = r.json[]5
data = r.json[]6_______1_______4
data = r.json[]8
data = r.json[]9
data = {'api_dev_key':API_KEY, 'api_option':'paste', 'api_paste_code':source_code, 'api_paste_format':'python'}0
data = {'api_dev_key':API_KEY, 'api_option':'paste', 'api_paste_code':source_code, 'api_paste_format':'python'}1
data = {'api_dev_key':API_KEY, 'api_option':'paste', 'api_paste_code':source_code, 'api_paste_format':'python'}0
data = {'api_dev_key':API_KEY, 'api_option':'paste', 'api_paste_code':source_code, 'api_paste_format':'python'}3
data = {'api_dev_key':API_KEY, 'api_option':'paste', 'api_paste_code':source_code, 'api_paste_format':'python'}0
data = {'api_dev_key':API_KEY, 'api_option':'paste', 'api_paste_code':source_code, 'api_paste_format':'python'}5
data = {'api_dev_key':API_KEY, 'api_option':'paste', 'api_paste_code':source_code, 'api_paste_format':'python'}0
data = {'api_dev_key':API_KEY, 'api_option':'paste', 'api_paste_code':source_code, 'api_paste_format':'python'}7
data = {'api_dev_key':API_KEY, 'api_option':'paste', 'api_paste_code':source_code, 'api_paste_format':'python'}8
data = {'api_dev_key':API_KEY, 'api_option':'paste', 'api_paste_code':source_code, 'api_paste_format':'python'}9_______1_______4
data = r.json[]8
data = r.json[]9
data = {'api_dev_key':API_KEY, 'api_option':'paste', 'api_paste_code':source_code, 'api_paste_format':'python'}0
data = {'api_dev_key':API_KEY, 'api_option':'paste', 'api_paste_code':source_code, 'api_paste_format':'python'}1
data = {'api_dev_key':API_KEY, 'api_option':'paste', 'api_paste_code':source_code, 'api_paste_format':'python'}0
data = {'api_dev_key':API_KEY, 'api_option':'paste', 'api_paste_code':source_code, 'api_paste_format':'python'}3
data = {'api_dev_key':API_KEY, 'api_option':'paste', 'api_paste_code':source_code, 'api_paste_format':'python'}0
data = {'api_dev_key':API_KEY, 'api_option':'paste', 'api_paste_code':source_code, 'api_paste_format':'python'}5
data = {'api_dev_key':API_KEY, 'api_option':'paste', 'api_paste_code':source_code, 'api_paste_format':'python'}0
pastebin_url = r.text0
data = {'api_dev_key':API_KEY, 'api_option':'paste', 'api_paste_code':source_code, 'api_paste_format':'python'}8
pastebin_url = r.text2_______1_______4
data = r.json[]8
data = r.json[]9_______41_______0
data = {'api_dev_key':API_KEY, 'api_option':'paste', 'api_paste_code':source_code, 'api_paste_format':'python'}1
data = {'api_dev_key':API_KEY, 'api_option':'paste', 'api_paste_code':source_code, 'api_paste_format':'python'}0
pastebin_url = r.text9
data = {'api_dev_key':API_KEY, 'api_option':'paste', 'api_paste_code':source_code, 'api_paste_format':'python'}8
PARAMS = {'address':location}1
# importing the requests library
2
# importing the requests library
3____132_______4# importing the requests library
5
# importing the requests library
6_______132_______7# importing the requests library
8
đầu ra
Ví dụ trên tìm vĩ độ, kinh độ và địa chỉ được định dạng của một vị trí nhất định bằng cách gửi yêu cầu GET tới API Google Maps. API [Giao diện lập trình ứng dụng] cho phép bạn truy cập các tính năng nội bộ của chương trình theo cách hạn chế. Và trong hầu hết các trường hợp, dữ liệu được cung cấp ở định dạng JSON [Ký hiệu đối tượng JavaScript] [được triển khai dưới dạng đối tượng từ điển trong Python. ]
Điểm quan trọng để suy luận
PARAMS = {'address':location}
URL cho yêu cầu GET thường mang theo một số tham số. Đối với thư viện yêu cầu, các tham số có thể được định nghĩa như một từ điển. Các tham số này sau đó được phân tích cú pháp và thêm vào url cơ sở hoặc điểm cuối api
Để hiểu vai trò tham số, hãy thử in r. url sau khi đối tượng phản hồi được tạo. Bạn sẽ thấy một cái gì đó như thế này//maps.googleapis.com/maps/api/geocode/json?address=delhi+technological+university
Đây là URL thực mà yêu cầu GET được thực hiện
r = requests.get[url = URL, params = PARAMS]
Ở đây chúng tôi tạo một đối tượng phản hồi 'r' sẽ lưu trữ phản hồi yêu cầu. Chúng tôi sử dụng yêu cầu. get[] vì chúng tôi đang gửi yêu cầu GET. Hai đối số chúng tôi truyền vào là url và từ điển tham số
data = r.json[]
Bây giờ, để lấy dữ liệu từ đối tượng phản hồi, chúng ta cần chuyển đổi nội dung phản hồi thô thành cấu trúc dữ liệu kiểu JSON. Điều này đạt được bằng cách sử dụng phương thức json[]. Cuối cùng, chúng tôi trích xuất thông tin cần thiết bằng cách phân tích đối tượng kiểu JSON
Thực hiện một yêu cầu POST
# importing the requests library
import
PARAMS = {'address':location}0
PARAMS = {'address':location}1
import
3
import
4
PARAMS = {'address':location}4
import
6PARAMS = {'address':location}1
import
8
import
9______1_______4
PARAMS = {'address':location}01
PARAMS = {'address':location}1
PARAMS = {'address':location}03
PARAMS = {'address':location}04______1_______4
PARAMS = {'address':location}06
PARAMS = {'address':location}07
PARAMS = {'address':location}08
PARAMS = {'address':location}09
PARAMS = {'address':location}10
PARAMS = {'address':location}06
PARAMS = {'address':location}1
PARAMS = {'address':location}13
r = requests.get[url = URL, params = PARAMS]9_______1_______4
//maps.googleapis.com/maps/api/geocode/json?address=delhi+technological+university5
PARAMS = {'address':location}17_______1_______18
PARAMS = {'address':location}19_______1_______20
PARAMS = {'address':location}21
PARAMS = {'address':location}22
PARAMS = {'address':location}23
PARAMS = {'address':location}19_______1_______25
PARAMS = {'address':location}26
PARAMS = {'address':location}19_______1_______28
PARAMS = {'address':location}21
PARAMS = {'address':location}30
PARAMS = {'address':location}31
PARAMS = {'address':location}1
PARAMS = {'address':location}33
r = requests.get[url = URL, params = PARAMS]0_______1_______4
PARAMS = {'address':location}36
PARAMS = {'address':location}4
PARAMS = {'address':location}38
PARAMS = {'address':location}4
PARAMS = {'address':location}40
PARAMS = {'address':location}1
PARAMS = {'address':location}42
PARAMS = {'address':location}43
PARAMS = {'address':location}4
PARAMS = {'address':location}45
# importing the requests library
3# importing the requests library
4
PARAMS = {'address':location}48
# importing the requests library
7PARAMS = {'address':location}50
Ví dụ này giải thích cách dán source_code của bạn vào pastebin. com bằng cách gửi yêu cầu POST tới PASTEBIN API
Trước hết, bạn sẽ cần tạo khóa API bằng cách đăng ký tại đây và sau đó truy cập vào
Các tính năng quan trọng của mã này
data = {'api_dev_key':API_KEY, 'api_option':'paste', 'api_paste_code':source_code, 'api_paste_format':'python'}
Ở đây một lần nữa, chúng ta sẽ cần chuyển một số dữ liệu đến máy chủ API. Chúng tôi lưu trữ dữ liệu này dưới dạng từ điển
r = requests.post[url = API_ENDPOINT, data = data]
Ở đây chúng tôi tạo một đối tượng phản hồi 'r' sẽ lưu trữ phản hồi yêu cầu. Chúng tôi sử dụng yêu cầu. post[] vì chúng tôi đang gửi yêu cầu POST. Hai đối số chúng tôi truyền vào là url và từ điển dữ liệu
pastebin_url = r.text
Đáp lại, máy chủ xử lý dữ liệu được gửi tới nó và gửi URL pastebin của source_code của bạn, URL này có thể được truy cập đơn giản bởi r. chữ
yêu cầu. phương thức đăng có thể được sử dụng cho nhiều tác vụ khác cũng như điền và gửi biểu mẫu web, đăng lên dòng thời gian FB của bạn bằng Facebook Graph API, v.v.
Dưới đây là một số điểm quan trọng để suy ngẫm
- Khi phương thức là GET, tất cả dữ liệu biểu mẫu được mã hóa vào URL, được thêm vào URL hành động dưới dạng tham số chuỗi truy vấn. Với POST, dữ liệu biểu mẫu xuất hiện trong nội dung thư của yêu cầu HTTP
- Trong phương thức GET, dữ liệu tham số được giới hạn ở những gì chúng ta có thể đưa vào dòng yêu cầu [URL]. An toàn nhất khi sử dụng ít hơn 2K tham số, một số máy chủ xử lý tới 64K. Không có vấn đề như vậy trong phương thức POST vì chúng tôi gửi dữ liệu trong nội dung thư của yêu cầu HTTP, không phải URL
- Chỉ các ký tự ASCII được phép gửi dữ liệu trong phương thức GET. Không có hạn chế như vậy trong phương thức POST
- GET kém an toàn hơn so với POST vì dữ liệu được gửi là một phần của URL. Vì vậy, không nên sử dụng phương thức GET khi gửi mật khẩu hoặc thông tin nhạy cảm khác
Blog này được đóng góp bởi Nikhil Kumar. Nếu bạn thích GeeksforGeeks và muốn đóng góp, bạn cũng có thể viết một bài báo bằng cách sử dụng write. chuyên viên máy tính. org hoặc gửi bài viết của bạn tới review-team@geeksforgeeks. tổ chức. Xem bài viết của bạn xuất hiện trên trang chính của GeeksforGeeks và trợ giúp các Geeks khác
Vui lòng viết bình luận nếu bạn thấy bất cứ điều gì không chính xác hoặc bạn muốn chia sẻ thêm thông tin về chủ đề thảo luận ở trên