Hướng dẫn requests patch python
Nội dung chính Các Trong suốt bài viết này, bạn sẽ thấy một số tính năng hữu ích nhất Trong hướng dẫn này, bạn sẽ học cách:
Mặc dù tôi đã cố gắng bao gồm nhiều thông tin nhất mà bạn cần để hiểu các tính năng và ví dụ có trong bài viết này, nhưng tôi giả sử có một kiến thức chung rất cơ bản về HTTP . Điều đó nói rằng, bạn vẫn có thể làm theo tốt. Bây giờ điều đó không còn nữa, hãy đi sâu vào và xem bạn có thể sử dụng như thế nào Bắt đầu với requestsHãy bắt đầu bằng cách cài đặt Nếu bạn thích sử dụng Pipenv để quản lý các gói Python , bạn có thể chạy như sau:
Sau khi Bây giờ bạn đã thiết lập xong, đã đến lúc bắt đầu hành trình của bạn Yêu cầu GETCác phương thức HTTP chẳng hạn như Một trong những phương thức HTTP phổ biến nhất là Để kiểm tra điều này, bạn có thể >>>
Xin chúc mừng! Bạn đã thực hiện yêu cầu đầu tiên của mình. Hãy đi sâu hơn một chút về phản hồi của yêu cầu đó. Phản hồiA >>>
Trong ví dụ này, bạn đã nắm bắt được giá trị trả về của Mã trạng tháiBit thông tin đầu tiên mà bạn có thể thu thập Ví
dụ: Bằng cách truy cập >>>
Đôi khi, bạn có thể muốn sử dụng thông tin này để đưa ra quyết định trong mã của mình:
Với logic này, nếu máy chủ trả về
Do đó, bạn có thể đơn giản hóa ví dụ cuối cùng bằng cách viết lại
Hãy nhớ rằng phương pháp này không xác minh rằng mã trạng thái là bằng Ví dụ: Vì vậy, hãy đảm bảo rằng bạn chỉ sử dụng tốc ký thuận tiện này nếu bạn muốn biết yêu cầu nói chung có thành công hay không và sau đó, nếu cần, hãy xử lý phản hồi một cách thích hợp dựa trên mã trạng thái. Giả sử bạn không muốn kiểm tra mã trạng thái của phản hồi trong
một
Nếu bạn gọi Đọc thêm: Nếu bạn không quen thuộc với chuỗi f của Python 3.6 , tôi khuyến khích bạn tận dụng chúng vì chúng là một cách tuyệt vời để đơn giản hóa các chuỗi được định dạng của bạn. Bây giờ, bạn đã biết rất nhiều về cách xử lý mã trạng thái của phản hồi mà bạn nhận được từ máy chủ. Tuy nhiên, khi bạn đưa ra một Nội dungPhản hồi
của một Để xem nội dung của phản hồi >>>
Mặc dù >>>
Bởi vì việc giải mã >>>
Nếu bạn nhìn vào phản hồi, bạn sẽ thấy rằng nó thực sự là nội dung JSON được tuần tự hóa. Để lấy từ điển, bạn có thể lấy từ điển mà >>>
Các Bạn có thể làm được nhiều điều với mã trạng thái và nội dung thư. Tuy nhiên, nếu bạn cần thêm thông tin, chẳng hạn như siêu dữ liệu về chính phản hồi, bạn sẽ cần xem xét các tiêu đề của phản hồi. Tiêu đềTiêu đề phản hồi có thể cung cấp cho bạn thông tin hữu ích, chẳng hạn như loại nội dung của trọng tải phản hồi và giới hạn thời gian về thời gian lưu phản hồi vào bộ nhớ cache. Để xem các tiêu đề này, hãy truy cập >>>
>>>
Tuy nhiên, có điều gì đó đặc biệt về đối tượng tiêu đề giống như từ điển này. Thông số HTTP xác định các tiêu đề không phân biệt chữ hoa chữ thường, có nghĩa là chúng tôi có thể truy cập các tiêu đề này mà không cần lo lắng về cách viết hoa của chúng: >>>
Cho dù bạn sử dụng chìa khóa Bây giờ, bạn đã học những điều cơ bản về Tham số chuỗi truy vấnMột cách phổ biến để tùy chỉnh
Bằng cách chuyển từ điển Bạn có thể chuyển >>>
Bạn thậm chí có thể chuyển các giá trị dưới dạng >>>
Chuỗi truy vấn rất hữu ích cho các Yêu cầu tiêu đềĐể tùy chỉnh tiêu đề, bạn chuyển một từ điển tiêu đề HTTP để
Các Trước khi bạn tìm hiểu thêm các cách tùy chỉnh yêu cầu, hãy mở rộng tầm nhìn bằng cách khám phá các phương thức HTTP khác. Các phương thức HTTP khácBên cạnh >>>
Mỗi lệnh gọi hàm thực hiện một yêu cầu tới >>>
Tiêu đề, nội dung phản hồi, mã trạng thái và hơn thế nữa được trả về Nội dung thưTheo đặc tả HTTP,
Ví dụ: nếu loại nội dung yêu cầu của bạn là >>>
Bạn cũng có thể gửi cùng một dữ liệu đó dưới dạng danh sách các bộ giá trị: >>>
Tuy nhiên, nếu bạn cần gửi dữ liệu JSON, bạn có thể sử dụng httpbin.org là một tài nguyên tuyệt vời được tạo ra bởi
tác giả của >>>
Bạn có thể thấy từ phản hồi rằng máy chủ đã nhận được dữ liệu và tiêu đề yêu cầu của bạn khi bạn gửi chúng. Kiểm tra yêu cầu của bạnKhi bạn thực hiện một yêu cầu, Bạn có thể xem >>>
Kiểm tra Cho đến nay, bạn đã thực hiện rất nhiều loại yêu cầu khác nhau, nhưng chúng đều có một điểm chung: chúng là những yêu cầu chưa được xác thực đối với các API công khai. Nhiều dịch vụ bạn có thể gặp sẽ muốn bạn xác thực theo một cách nào đó. Xác thựcXác thực giúp dịch vụ hiểu bạn là ai. Thông thường, bạn cung cấp thông tin xác thực của mình cho máy chủ bằng cách
chuyển dữ liệu qua Một ví dụ về API yêu cầu xác thực là API người dùng được xác thực của GitHub . Điểm cuối này cung cấp thông tin về hồ sơ của người dùng đã được xác thực. Để thực hiện yêu cầu
đối với API người dùng được xác thực, bạn có thể chuyển tên người dùng và mật khẩu GitHub của mình trong một bộ mã tới >>>
Yêu cầu đã thành công nếu thông tin xác thực bạn đã chuyển trong tuple đến >>>
Khi bạn chuyển tên người dùng và mật khẩu của mình
trong một bộ vào Do đó, bạn có thể đưa ra yêu cầu tương tự bằng cách chuyển thông tin xác thực Cơ bản rõ ràng bằng cách sử dụng >>>
Mặc dù bạn không cần phải xác thực rõ ràng đối với Xác thực cơ bản, nhưng bạn có thể muốn xác thực bằng một
phương pháp khác. Bạn thậm chí có thể cung cấp cơ chế xác thực của riêng mình. Để làm như vậy, trước tiên bạn phải tạo một lớp con của
Tại đây, Cơ chế xác thực kém có thể dẫn đến lỗ hổng bảo mật, vì vậy trừ khi một dịch vụ yêu cầu cơ chế xác thực tùy chỉnh vì lý do nào đó, bạn sẽ luôn muốn sử dụng lược đồ xác thực đã thử và đúng như Basic hoặc OAuth. Trong khi bạn đang suy nghĩ về bảo mật, hãy xem xét xử lý Chứng chỉ SSL bằng cách sử dụng Xác minh chứng chỉ SSLBất kỳ lúc nào dữ liệu bạn đang cố gắng gửi hoặc nhận là nhạy cảm, bảo mật là rất quan trọng. Cách bạn giao tiếp với các trang web an toàn qua HTTP là thiết lập kết nối được mã hóa bằng SSL, có nghĩa là việc xác minh Chứng chỉ SSL của máy chủ mục tiêu là rất quan trọng. Tin tốt là nó Nếu bạn muốn tắt xác minh Chứng chỉ SSL, bạn chuyển >>>
Lưu ý: Hiệu suấtKhi sử dụng Hết giờKhi bạn thực hiện một yêu cầu nội tuyến đối với một dịch vụ bên ngoài, hệ thống của bạn sẽ cần phải đợi phản hồi trước khi tiếp tục. Nếu ứng dụng của bạn đợi phản hồi đó quá lâu, các yêu cầu tới dịch vụ của bạn có thể sao lưu, trải nghiệm người dùng của bạn có thể bị ảnh hưởng hoặc các công việc nền của bạn có thể bị treo. Theo mặc định, >>>
Trong yêu cầu đầu tiên, yêu cầu sẽ hết thời gian chờ sau 1 giây. Trong yêu cầu thứ hai, yêu cầu sẽ hết thời gian chờ sau 3,05 giây. Bạn cũng có thể chuyển một bộ tuple tới >>>
Nếu yêu cầu thiết lập kết nối trong
vòng 2 giây và nhận dữ liệu trong vòng 5 giây kể từ khi kết nối được thiết lập, thì phản hồi sẽ được trả về như trước đó. Nếu hết thời gian yêu cầu, thì hàm sẽ đưa ra một
Chương trình của bạn có thể bắt được Đối tượng phiênCho đến bây giờ, bạn đã xử lý Bên dưới những phần trừu tượng đó là một lớp được gọi Phiên được sử dụng để duy trì các thông số trên các yêu cầu. Ví dụ: nếu bạn muốn sử dụng cùng một xác thực cho nhiều yêu cầu, bạn có thể sử dụng một phiên:
Mỗi khi bạn thực hiện một yêu cầu Việc tối ưu hóa hiệu suất chính của các phiên ở dạng kết nối liên tục. Khi ứng dụng của bạn tạo kết nối với máy chủ bằng cách sử dụng
a Số lần thử tối đaKhi một yêu cầu không thành công, bạn có thể muốn ứng dụng của mình thử lại cùng một yêu cầu. Tuy nhiên, Bộ điều hợp Giao thông cho phép bạn xác định một tập hợp các cấu hình cho mỗi dịch vụ mà bạn đang tương tác. Ví dụ: giả sử bạn muốn tất cả các yêu cầu
Khi bạn gắn kết Thời gian chờ, Bộ điều hợp truyền tải và phiên là để giữ cho mã của bạn hiệu quả và ứng dụng của bạn có khả năng phục hồi. Phần kết luậnBạn đã trải qua một chặng đường dài trong việc tìm hiểu về Bây giờ bạn có thể:
Bởi vì bạn đã học cách sử dụng Copied !!! |