http.client --- ứng dụng khách giao thức HTTP¶
Source code: Lib/http/client.py
Mô-đun này xác định các lớp triển khai phía máy khách của giao thức HTTP và HTTPS. Nó thường không được sử dụng trực tiếp --- mô-đun urllib.request sử dụng nó để xử lý các URL sử dụng HTTP và HTTPS.
Xem thêm
Zz000zz được khuyên dùng cho giao diện máy khách HTTP cấp cao hơn.
Ghi chú
Hỗ trợ HTTPS chỉ khả dụng nếu Python được biên dịch với sự hỗ trợ SSL (thông qua mô-đun ssl).
sẵn có: not WASI.
Mô-đun này không hoạt động hoặc không có trên WebAssembly. Xem Nền tảng WebAssugging để biết thêm thông tin.
Mô-đun này cung cấp các lớp sau:
- class http.client.HTTPConnection(host, port=None, [timeout, ]source_address=None, blocksize=8192)¶
Một phiên bản
HTTPConnectionđại diện cho một giao dịch với máy chủ HTTP. Nó phải được khởi tạo bằng cách chuyển cho nó một máy chủ và số cổng tùy chọn. Nếu không có số cổng nào được chuyển, cổng đó sẽ được trích xuất từ chuỗi máy chủ nếu nó có dạnghost:port, nếu không thì cổng HTTP mặc định (80) sẽ được sử dụng. Nếu tham số timeout tùy chọn được cung cấp, các hoạt động chặn (như nỗ lực kết nối) sẽ hết thời gian chờ sau nhiều giây đó (nếu không được cung cấp, cài đặt thời gian chờ mặc định chung sẽ được sử dụng). Tham số source_address tùy chọn có thể là một bộ (máy chủ, cổng) để sử dụng làm địa chỉ nguồn mà kết nối HTTP được tạo từ đó. Tham số blocksize tùy chọn đặt kích thước bộ đệm tính bằng byte để gửi nội dung thư giống như tệp.Ví dụ: tất cả các lệnh gọi sau đây đều tạo các phiên bản kết nối với máy chủ trên cùng một máy chủ và cổng
>>> h1 = http.client.HTTPConnection('www.python.org') >>> h2 = http.client.HTTPConnection('www.python.org:80') >>> h3 = http.client.HTTPConnection('www.python.org', 80) >>> h4 = http.client.HTTPConnection('www.python.org', 80, timeout=10)
Thay đổi trong phiên bản 3.2: source_address đã được thêm vào.
Thay đổi trong phiên bản 3.4: Tham số strict đã bị xóa. "Phản hồi đơn giản" kiểu HTTP 0.9 không còn được hỗ trợ.
Thay đổi trong phiên bản 3.7: tham số blocksize đã được thêm vào.
- class http.client.HTTPSConnection(host, port=None, *, [timeout, ]source_address=None, context=None, blocksize=8192)¶
Một lớp con của
HTTPConnectionsử dụng SSL để liên lạc với các máy chủ bảo mật. Cổng mặc định là443. Nếu context được chỉ định, thì đó phải là phiên bảnssl.SSLContextmô tả các tùy chọn SSL khác nhau.Vui lòng đọc Cân nhắc về bảo mật để biết thêm thông tin về các phương pháp hay nhất.
Thay đổi trong phiên bản 3.2: source_address, context và check_hostname đã được thêm vào.
Thay đổi trong phiên bản 3.2: Lớp này hiện hỗ trợ máy chủ ảo HTTPS nếu có thể (nghĩa là nếu
ssl.HAS_SNIlà đúng).Thay đổi trong phiên bản 3.4: Tham số strict đã bị xóa. "Phản hồi đơn giản" kiểu HTTP 0.9 không còn được hỗ trợ.
Thay đổi trong phiên bản 3.4.3: Lớp này hiện thực hiện tất cả các kiểm tra chứng chỉ và tên máy chủ cần thiết theo mặc định. Để hoàn nguyên về hành vi
ssl._create_unverified_context()trước đó, chưa được xác minh, có thể được chuyển tới tham số context.Thay đổi trong phiên bản 3.8: Lớp này hiện kích hoạt TLS 1.3
ssl.SSLContext.post_handshake_authcho context mặc định hoặc khi cert_file được chuyển bằng context tùy chỉnh.Thay đổi trong phiên bản 3.10: Lớp này hiện gửi phần mở rộng ALPN với chỉ báo giao thức
http/1.1khi không có context nào được cung cấp. Zz003zz tùy chỉnh nên đặt giao thức ALPN vớiset_alpn_protocols().Thay đổi trong phiên bản 3.12: Các tham số key_file, cert_file và check_hostname không được dùng nữa đã bị xóa.
- class http.client.HTTPResponse(sock, debuglevel=0, method=None, url=None)¶
Lớp có phiên bản được trả về khi kết nối thành công. Không được người dùng trực tiếp khởi tạo.
Thay đổi trong phiên bản 3.4: Tham số strict đã bị xóa. Kiểu "Phản hồi đơn giản" kiểu HTTP 0.9 không còn được hỗ trợ.
Mô-đun này cung cấp chức năng sau:
- http.client.parse_headers(fp)¶
Phân tích các tiêu đề từ một con trỏ tệp fp biểu thị yêu cầu/phản hồi HTTP. Tệp phải là trình đọc
BufferedIOBase(tức là không phải văn bản) và phải cung cấp tiêu đề kiểu RFC 5322 hợp lệ.Hàm này trả về một phiên bản của
http.client.HTTPMessagechứa các trường tiêu đề nhưng không có tải trọng (giống nhưHTTPResponse.msgvàhttp.server.BaseHTTPRequestHandler.headers). Sau khi quay lại, con trỏ tệp fp đã sẵn sàng để đọc phần thân HTTP.Ghi chú
parse_headers()không phân tích dòng bắt đầu của tin nhắn HTTP; nó chỉ phân tích các dòngName: value. Tệp phải sẵn sàng để đọc các dòng trường này, vì vậy dòng đầu tiên phải được sử dụng trước khi gọi hàm.
Các trường hợp ngoại lệ sau đây được nêu ra khi thích hợp:
- exception http.client.HTTPException¶
Lớp cơ sở của các ngoại lệ khác trong mô-đun này. Nó là một lớp con của
Exception.
- exception http.client.NotConnected¶
Một lớp con của
HTTPException.
- exception http.client.InvalidURL¶
Một lớp con của
HTTPException, được nâng lên nếu một cổng được cung cấp và không phải là số hoặc trống.
- exception http.client.UnknownProtocol¶
Một lớp con của
HTTPException.
- exception http.client.UnknownTransferEncoding¶
Một lớp con của
HTTPException.
- exception http.client.UnimplementedFileMode¶
Một lớp con của
HTTPException.
- exception http.client.IncompleteRead¶
Một lớp con của
HTTPException.
- exception http.client.ImproperConnectionState¶
Một lớp con của
HTTPException.
- exception http.client.CannotSendRequest¶
Một lớp con của
ImproperConnectionState.
- exception http.client.CannotSendHeader¶
Một lớp con của
ImproperConnectionState.
- exception http.client.ResponseNotReady¶
Một lớp con của
ImproperConnectionState.
- exception http.client.BadStatusLine¶
Một lớp con của
HTTPException. Xảy ra nếu máy chủ phản hồi với mã trạng thái HTTP mà chúng tôi không hiểu.
- exception http.client.LineTooLong¶
Một lớp con của
HTTPException. Tăng lên nếu nhận được một dòng quá dài trong giao thức HTTP từ máy chủ.
- exception http.client.RemoteDisconnected¶
Một lớp con của
ConnectionResetErrorvàBadStatusLine. Được tăng lên bởiHTTPConnection.getresponse()khi nỗ lực đọc phản hồi dẫn đến không có dữ liệu nào được đọc từ kết nối, cho biết rằng đầu từ xa đã đóng kết nối.Added in version 3.5: Trước đây,
BadStatusLine('')đã được nâng lên.
Các hằng số được xác định trong mô-đun này là:
- http.client.HTTP_PORT¶
Cổng mặc định cho giao thức HTTP (luôn là
80).
- http.client.HTTPS_PORT¶
Cổng mặc định cho giao thức HTTPS (luôn là
443).
- http.client.responses¶
Từ điển này ánh xạ mã trạng thái HTTP 1.1 tới tên W3C.
Ví dụ:
http.client.responses[http.client.NOT_FOUND]là'Not Found'.
Xem mã trạng thái HTTP để biết danh sách mã trạng thái HTTP có sẵn trong mô-đun này dưới dạng hằng số.
Đối tượng kết nối HTTP¶
Các phiên bản HTTPConnection có các phương thức sau:
- HTTPConnection.request(method, url, body=None, headers={}, *, encode_chunked=False)¶
Điều này sẽ gửi yêu cầu đến máy chủ bằng phương thức yêu cầu HTTP method và yêu cầu URI url. url được cung cấp phải là đường dẫn tuyệt đối tuân thủ RFC 2616 §5.1.2 (trừ khi kết nối với máy chủ proxy HTTP hoặc sử dụng phương thức
OPTIONShoặcCONNECT).Nếu body được chỉ định, dữ liệu được chỉ định sẽ được gửi sau khi tiêu đề hoàn tất. Nó có thể là
str, bytes-like object, file object mở hoặc có thể lặp lạibytes. Nếu body là một chuỗi thì nó được mã hóa thành ISO-8859-1, mặc định cho HTTP. Nếu đó là một đối tượng giống byte, thì các byte sẽ được gửi nguyên trạng. Nếu là file object, nội dung của tệp sẽ được gửi; đối tượng tệp này phải hỗ trợ ít nhất phương thứcread(). Nếu đối tượng tệp là một phiên bản củaio.TextIOBase, dữ liệu được trả về bởi phương thứcread()sẽ được mã hóa thành ISO-8859-1, nếu không thì dữ liệu được trả về bởiread()sẽ được gửi nguyên trạng. Nếu body là một iterable, các phần tử của iterable sẽ được gửi nguyên trạng cho đến khi iterable hết.Đối số headers phải là ánh xạ của các tiêu đề HTTP bổ sung để gửi cùng với yêu cầu. Phải cung cấp Host header để tuân thủ RFC 2616 §5.1.2 (trừ khi kết nối với máy chủ proxy HTTP hoặc sử dụng phương thức
OPTIONShoặcCONNECT).Nếu headers không chứa Độ dài nội dung cũng như Mã hóa truyền tải nhưng có nội dung yêu cầu thì một trong các trường tiêu đề đó sẽ tự động được thêm vào. Nếu body là
None, thì tiêu đề Độ dài nội dung được đặt thành0cho các phương thức yêu cầu nội dung (PUT,POSTvàPATCH). Nếu body là một chuỗi hoặc một đối tượng giống byte không phải là file, thì tiêu đề Độ dài nội dung được đặt thành độ dài của nó. Bất kỳ loại body nào khác (nói chung là tệp và các lần lặp) sẽ được mã hóa theo đoạn và tiêu đề Mã hóa chuyển sẽ tự động được đặt thay vì Độ dài nội dung.Đối số encode_chunked chỉ có liên quan nếu Mã hóa truyền được chỉ định trong headers. Nếu encode_chunked là
False, đối tượng HTTPConnection giả định rằng tất cả mã hóa đều được mã gọi xử lý. Nếu làTrue, phần thân sẽ được mã hóa từng đoạn.Ví dụ: để thực hiện yêu cầu
GETtớihttps://python.go-mizu.dev/:>>> nhập http.client >>> máy chủ = "docs.python.org" >>> conn = http.client.HTTPSConnection(host) >>> conn.request("GET", "/3/", headers={"Host": hosting}) >>> phản hồi = conn.getresponse() >>> print(response.status, reply.reason) 200 được rồi
Ghi chú
Mã hóa truyền chunked đã được thêm vào giao thức HTTP phiên bản 1.1. Trừ khi máy chủ HTTP được biết là xử lý HTTP 1.1, người gọi phải chỉ định Độ dài nội dung hoặc phải chuyển một đối tượng
strhoặc đối tượng giống byte không phải là tệp dưới dạng biểu diễn nội dung.Ghi chú
Lưu ý rằng bạn phải đọc toàn bộ phản hồi hoặc gọi
close()nếugetresponse()đưa ra ngoại lệ không phảiConnectionErrortrước khi bạn có thể gửi yêu cầu mới đến máy chủ.Thay đổi trong phiên bản 3.2: body bây giờ có thể lặp lại được.
Thay đổi trong phiên bản 3.6: Nếu cả Độ dài nội dung và Mã hóa truyền đều không được đặt trong headers, thì tệp và các đối tượng body có thể lặp lại hiện được mã hóa theo khối. Đối số encode_chunked đã được thêm vào. Không có nỗ lực nào được thực hiện để xác định Độ dài nội dung cho các đối tượng tệp.
- HTTPConnection.getresponse()¶
Nên được gọi sau khi yêu cầu được gửi để nhận phản hồi từ máy chủ. Trả về một phiên bản
HTTPResponse.Thay đổi trong phiên bản 3.5: Nếu
ConnectionErrorhoặc lớp con được nâng lên, đối tượngHTTPConnectionsẽ sẵn sàng kết nối lại khi có yêu cầu mới được gửi.Lưu ý rằng điều này không áp dụng cho
OSErrors được nâng lên bởi ổ cắm bên dưới. Thay vào đó, người gọi có trách nhiệm gọiclose()trên kết nối hiện có.
- HTTPConnection.set_debuglevel(level)¶
Đặt mức độ gỡ lỗi. Mức gỡ lỗi mặc định là
0, nghĩa là không có kết quả gỡ lỗi nào được in ra. Bất kỳ giá trị nào lớn hơn0sẽ khiến tất cả đầu ra gỡ lỗi hiện được xác định sẽ được in ra thiết bị xuất chuẩn.debuglevelđược chuyển tới bất kỳ đối tượngHTTPResponsemới nào được tạo.Added in version 3.1.
- HTTPConnection.set_tunnel(host, port=None, headers=None)¶
Đặt máy chủ và cổng cho HTTP Connect Tunnelling. Điều này cho phép chạy kết nối thông qua máy chủ proxy.
Các đối số host và port chỉ định điểm cuối của kết nối đường hầm (tức là địa chỉ có trong yêu cầu CONNECT, not địa chỉ của máy chủ proxy).
Đối số headers phải là ánh xạ của các tiêu đề HTTP bổ sung để gửi cùng với yêu cầu CONNECT.
Vì HTTP/1.1 được sử dụng cho yêu cầu tạo đường hầm HTTP CONNECT, nên as per the RFC, tiêu đề HTTP
Host:phải được cung cấp, khớp với biểu mẫu quyền của mục tiêu yêu cầu được cung cấp làm đích cho yêu cầu CONNECT. Nếu tiêu đề HTTPHost:không được cung cấp thông qua đối số tiêu đề, thì một tiêu đề sẽ được tạo và truyền tự động.Ví dụ: để chuyển qua máy chủ proxy HTTPS chạy cục bộ trên cổng 8080, chúng tôi sẽ chuyển địa chỉ của proxy tới hàm tạo
HTTPSConnectionvà địa chỉ của máy chủ mà cuối cùng chúng tôi muốn tiếp cận với phương thứcset_tunnel():>>> nhập http.client >>> conn = http.client.HTTPSConnection("localhost", 8080) >>> conn.set_tunnel("www.python.org") >>> conn.request("HEAD","/index.html")
Added in version 3.2.
Thay đổi trong phiên bản 3.12: Yêu cầu đường hầm HTTP CONNECT sử dụng giao thức HTTP/1.1, được nâng cấp từ giao thức HTTP/1.0. Các tiêu đề
Host:HTTP là bắt buộc đối với HTTP/1.1, do đó, một tiêu đề sẽ được tạo và truyền tự động nếu không được cung cấp trong đối số tiêu đề.
- HTTPConnection.get_proxy_response_headers()¶
Trả về một từ điển có tiêu đề phản hồi nhận được từ máy chủ proxy cho yêu cầu CONNECT.
Nếu yêu cầu CONNECT không được gửi, phương thức sẽ trả về
None.Added in version 3.12.
- HTTPConnection.connect()¶
Kết nối với máy chủ được chỉ định khi đối tượng được tạo. Theo mặc định, điều này được gọi tự động khi thực hiện yêu cầu nếu máy khách chưa có kết nối.
Tăng một auditing event
http.client.connectvới các đối sốself,host,port.
- HTTPConnection.close()¶
Đóng kết nối với máy chủ.
- HTTPConnection.blocksize¶
Kích thước bộ đệm tính bằng byte để gửi nội dung thư giống như tệp.
Added in version 3.7.
Để thay thế cho việc sử dụng phương pháp request() được mô tả ở trên, bạn cũng có thể gửi yêu cầu của mình từng bước bằng cách sử dụng bốn chức năng bên dưới.
- HTTPConnection.putrequest(method, url, skip_host=False, skip_accept_encoding=False)¶
Đây sẽ là cuộc gọi đầu tiên sau khi kết nối đến máy chủ được thực hiện. Nó gửi một dòng đến máy chủ bao gồm chuỗi method, chuỗi url và phiên bản HTTP (
HTTP/1.1). Để tắt tính năng tự động gửi tiêu đềHost:hoặcAccept-Encoding:(ví dụ: để chấp nhận mã hóa nội dung bổ sung), hãy chỉ định skip_host hoặc skip_accept_encoding với các giá trị không sai.
- HTTPConnection.putheader(header, argument[, ...])¶
Gửi tiêu đề kiểu RFC 822- tới máy chủ. Nó gửi một dòng đến máy chủ bao gồm tiêu đề, dấu hai chấm, dấu cách và đối số đầu tiên. Nếu đưa ra nhiều đối số hơn, các dòng tiếp tục sẽ được gửi, mỗi dòng bao gồm một tab và một đối số.
- HTTPConnection.endheaders(message_body=None, *, encode_chunked=False)¶
Gửi một dòng trống đến máy chủ, báo hiệu sự kết thúc của tiêu đề. Đối số message_body tùy chọn có thể được sử dụng để chuyển nội dung thư được liên kết với yêu cầu.
Nếu encode_chunked là
True, kết quả của mỗi lần lặp của message_body sẽ được mã hóa chunk như được chỉ định trong RFC 7230, Mục 3.3.1. Cách dữ liệu được mã hóa phụ thuộc vào loại message_body. Nếu message_body triển khai buffer interface thì mã hóa sẽ tạo thành một đoạn duy nhất. Nếu message_body làcollections.abc.Iterable, mỗi lần lặp của message_body sẽ tạo ra một đoạn. Nếu message_body là file object, mỗi lệnh gọi tới.read()sẽ dẫn đến một đoạn. Phương thức này tự động báo hiệu sự kết thúc của dữ liệu được mã hóa chunk ngay sau message_body.Ghi chú
Do đặc tả mã hóa chunked, các đoạn trống do phần thân vòng lặp tạo ra sẽ bị bộ mã hóa chunk bỏ qua. Điều này là để tránh việc máy chủ mục tiêu chấm dứt sớm việc đọc yêu cầu do mã hóa không đúng định dạng.
Thay đổi trong phiên bản 3.6: Đã thêm hỗ trợ mã hóa chunked và tham số encode_chunked.
- HTTPConnection.send(data)¶
Gửi dữ liệu đến máy chủ. Điều này chỉ nên được sử dụng trực tiếp sau khi phương thức
endheaders()được gọi và trước khigetresponse()được gọi.Tăng một auditing event
http.client.sendvới các đối sốself,data.
Đối tượng HTTPResponse¶
Một phiên bản HTTPResponse bao bọc phản hồi HTTP từ máy chủ. Nó cung cấp quyền truy cập vào các tiêu đề yêu cầu và nội dung thực thể. Phản hồi là một đối tượng có thể lặp lại và có thể được sử dụng trong câu lệnh with.
Thay đổi trong phiên bản 3.5: Giao diện io.BufferedIOBase hiện đã được triển khai và tất cả các hoạt động đọc của nó đều được hỗ trợ.
- HTTPResponse.read([amt])¶
Đọc và trả về nội dung phản hồi hoặc tối đa byte amt tiếp theo.
- HTTPResponse.readinto(b)¶
Đọc tối đa len(b) byte tiếp theo của nội dung phản hồi vào bộ đệm b. Trả về số byte đã đọc.
Added in version 3.3.
- HTTPResponse.getheader(name, default=None)¶
Trả về giá trị của tiêu đề name hoặc default nếu không có tiêu đề nào khớp với name. Nếu có nhiều hơn một tiêu đề có tên name, hãy trả về tất cả các giá trị được nối bởi ', '. Nếu default là bất kỳ chuỗi lặp nào khác ngoài một chuỗi đơn, thì các phần tử của nó cũng được trả về tương tự và được nối bằng dấu phẩy.
- HTTPResponse.getheaders()¶
Trả về danh sách các bộ dữ liệu (tiêu đề, giá trị).
- HTTPResponse.fileno()¶
Trả về
filenocủa ổ cắm bên dưới.
- HTTPResponse.msg¶
Một phiên bản
http.client.HTTPMessagechứa các tiêu đề phản hồi.http.client.HTTPMessagelà một lớp con củaemail.message.Message.
- HTTPResponse.version¶
Phiên bản giao thức HTTP được máy chủ sử dụng. 10 cho HTTP/1.0, 11 cho HTTP/1.1.
- HTTPResponse.url¶
URL của tài nguyên được truy xuất, thường được sử dụng để xác định xem có chuyển hướng hay không.
- HTTPResponse.headers¶
Tiêu đề của phản hồi ở dạng phiên bản
email.message.EmailMessage.
- HTTPResponse.status¶
Mã trạng thái được máy chủ trả về.
- HTTPResponse.reason¶
Cụm từ lý do được máy chủ trả về.
- HTTPResponse.debuglevel¶
Một cái móc gỡ lỗi. Nếu
debuglevellớn hơn 0, tin nhắn sẽ được in ra thiết bị xuất chuẩn khi phản hồi được đọc và phân tích cú pháp.
- HTTPResponse.closed¶
Là
Truenếu luồng bị đóng.
Ví dụ¶
Đây là phiên ví dụ sử dụng phương thức GET:
>>> nhập http.client
>>> conn = http.client.HTTPSConnection("www.python.org")
>>> conn.request("GET", "/")
>>> r1 = conn.getresponse()
>>> in(r1.status, r1.reason)
200 được rồi
>>> data1 = r1.read() # This sẽ trả về toàn bộ nội dung.
>>> # The ví dụ sau minh họa việc đọc dữ liệu theo từng đoạn.
>>> conn.request("GET", "/")
>>> r1 = conn.getresponse()
>>> while chunk := r1.read(200):
... print(repr(chunk))
b'<!doctype html>\n<!--[if"...
...
>>> # Example của một yêu cầu không hợp lệ
>>> conn = http.client.HTTPSConnection("docs.python.org")
>>> conn.request("GET", "/parrot.spam")
>>> r2 = conn.getresponse()
>>> in(r2.status, r2.reason)
404 Không tìm thấy
>>> data2 = r2.read()
>>> conn.close()
Đây là một phiên ví dụ sử dụng phương pháp HEAD. Lưu ý rằng phương thức HEAD không bao giờ trả về bất kỳ dữ liệu nào.
>>> nhập http.client
>>> conn = http.client.HTTPSConnection("www.python.org")
>>> conn.request("HEAD", "/")
>>> res = conn.getresponse()
>>> print(res.status, res.reason)
200 được rồi
>>> dữ liệu = res.read()
>>> in(len(dữ liệu))
0
>>> dữ liệu == b''
đúng
Đây là phiên ví dụ sử dụng phương thức POST:
>>> nhập http.client, urllib.parse
>>> params = urllib.parse.urlencode({'@number': 12524, '@type': 'issue', '@action': 'show'})
>>> tiêu đề = {"Loại nội dung": "application/x-www-form-urlencoded",
... "Chấp nhận": "text/plain"}
>>> conn = http.client.HTTPConnection("bugs.python.org")
>>> conn.request("POST", "", thông số, tiêu đề)
>>> phản hồi = conn.getresponse()
>>> print(response.status, reply.reason)
302 Đã tìm thấy
>>> dữ liệu = phản hồi.read()
>>> dữ liệu
b'Chuyển hướng tới <a href="https://bugs.python.org/issue12524">https://bugs.python.org/issue12524</a>'
>>> conn.close()
Các yêu cầu HTTP PUT phía khách hàng rất giống với các yêu cầu POST. Sự khác biệt chỉ nằm ở phía máy chủ, nơi các máy chủ HTTP sẽ cho phép tạo tài nguyên thông qua các yêu cầu PUT. Cần lưu ý rằng các phương thức HTTP tùy chỉnh cũng được xử lý trong urllib.request.Request bằng cách đặt thuộc tính phương thức thích hợp. Đây là phiên ví dụ sử dụng phương thức PUT:
>>> # This tạo yêu cầu HTTP
>>> # with nội dung của BODY dưới dạng biểu diễn kèm theo
>>> # for tài nguyên http://localhost:8080/file
...
>>> nhập http.client
>>> BODY = "*zz000zz*"
>>> conn = http.client.HTTPConnection("localhost", 8080)
>>> conn.request("PUT", "/file", BODY)
>>> phản hồi = conn.getresponse()
>>> print(response.status, reply.reason)
200, được rồi
Đối tượng HTTPMessage¶
- class http.client.HTTPMessage(email.message.Message)¶
Một phiên bản http.client.HTTPMessage giữ các tiêu đề từ phản hồi HTTP. Nó được triển khai bằng lớp email.message.Message.