diff options
author | David Foster <david@dafoster.net> | 2023-05-09 19:57:17 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-09 19:57:17 (GMT) |
commit | 7ba6288feb961fcd60a29415c6371d2d3eb80bec (patch) | |
tree | 76a7aceab46cb39b60efcadcbe7909f8052a079d /Doc | |
parent | 01c321ca34d99f35f174768c6f8c500801d4ef4c (diff) | |
download | cpython-7ba6288feb961fcd60a29415c6371d2d3eb80bec.zip cpython-7ba6288feb961fcd60a29415c6371d2d3eb80bec.tar.gz cpython-7ba6288feb961fcd60a29415c6371d2d3eb80bec.tar.bz2 |
gh-102327: Extend docs for "url" and "headers" parameters to HTTPConnection.request()
Added example on how to use the HTTPConnection object for making GET request.
Original issue: https://github.com/python/cpython/issues/102327
---------
Co-authored-by: Éric <earaujo@caravan.coop>
Diffstat (limited to 'Doc')
-rw-r--r-- | Doc/library/http.client.rst | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/Doc/library/http.client.rst b/Doc/library/http.client.rst index eb8c1e1..bf1f2e3 100644 --- a/Doc/library/http.client.rst +++ b/Doc/library/http.client.rst @@ -264,7 +264,10 @@ HTTPConnection Objects encode_chunked=False) This will send a request to the server using the HTTP request - method *method* and the selector *url*. + method *method* and the request URI *url*. The provided *url* must be + an absolute path to conform with :rfc:`RFC 2616 §5.1.2 <2616#section-5.1.2>` + (unless connecting to an HTTP proxy server or using the ``OPTIONS`` or + ``CONNECT`` methods). If *body* is specified, the specified data is sent after the headers are finished. It may be a :class:`str`, a :term:`bytes-like object`, an @@ -279,7 +282,10 @@ HTTPConnection Objects iterable are sent as is until the iterable is exhausted. The *headers* argument should be a mapping of extra HTTP headers to send - with the request. + with the request. A :rfc:`Host header <2616#section-14.23>` + must be provided to conform with :rfc:`RFC 2616 §5.1.2 <2616#section-5.1.2>` + (unless connecting to an HTTP proxy server or using the ``OPTIONS`` or + ``CONNECT`` methods). If *headers* contains neither Content-Length nor Transfer-Encoding, but there is a request body, one of those @@ -298,6 +304,16 @@ HTTPConnection Objects HTTPConnection object assumes that all encoding is handled by the calling code. If it is ``True``, the body will be chunk-encoded. + For example, to perform a ``GET`` request to ``https://docs.python.org/3/``:: + + >>> import http.client + >>> host = "docs.python.org" + >>> conn = http.client.HTTPSConnection(host) + >>> conn.request("GET", "/3/", headers={"Host": host}) + >>> response = conn.getresponse() + >>> print(response.status, response.reason) + 200 OK + .. note:: Chunked transfer encoding has been added to the HTTP protocol version 1.1. Unless the HTTP server is known to handle HTTP 1.1, |