Commit b7134998 authored by Gregory P. Smith's avatar Gregory P. Smith

merge heads

parents 2522771e 87684e6e
...@@ -108,6 +108,7 @@ library. :: ...@@ -108,6 +108,7 @@ library. ::
'language' : 'Python' } 'language' : 'Python' }
data = urllib.parse.urlencode(values) data = urllib.parse.urlencode(values)
data = data.encode('utf-8') # data should be bytes
req = urllib.request.Request(url, data) req = urllib.request.Request(url, data)
response = urllib.request.urlopen(req) response = urllib.request.urlopen(req)
the_page = response.read() the_page = response.read()
...@@ -172,7 +173,8 @@ Explorer [#]_. :: ...@@ -172,7 +173,8 @@ Explorer [#]_. ::
'language' : 'Python' } 'language' : 'Python' }
headers = { 'User-Agent' : user_agent } headers = { 'User-Agent' : user_agent }
data = urllib.parse.urlencode(values) data = urllib.parse.urlencode(values)
data = data.encode('utf-8')
req = urllib.request.Request(url, data, headers) req = urllib.request.Request(url, data, headers)
response = urllib.request.urlopen(req) response = urllib.request.urlopen(req)
the_page = response.read() the_page = response.read()
......
...@@ -138,14 +138,13 @@ The following classes are provided: ...@@ -138,14 +138,13 @@ The following classes are provided:
*url* should be a string containing a valid URL. *url* should be a string containing a valid URL.
*data* may be a string specifying additional data to send to the *data* may be a bytes object specifying additional data to send to the
server, or ``None`` if no such data is needed. Currently HTTP server, or ``None`` if no such data is needed. Currently HTTP requests are
requests are the only ones that use *data*; the HTTP request will the only ones that use *data*; the HTTP request will be a POST instead of a
be a POST instead of a GET when the *data* parameter is provided. GET when the *data* parameter is provided. *data* should be a buffer in the
*data* should be a buffer in the standard standard :mimetype:`application/x-www-form-urlencoded` format. The
:mimetype:`application/x-www-form-urlencoded` format. The :func:`urllib.parse.urlencode` function takes a mapping or sequence of
:func:`urllib.parse.urlencode` function takes a mapping or sequence 2-tuples and returns a string in this format.
of 2-tuples and returns a string in this format.
*headers* should be a dictionary, and will be treated as if *headers* should be a dictionary, and will be treated as if
:meth:`add_header` was called with each key and value as arguments. :meth:`add_header` was called with each key and value as arguments.
...@@ -1122,10 +1121,10 @@ some point in the future. ...@@ -1122,10 +1121,10 @@ some point in the future.
size in response to a retrieval request. size in response to a retrieval request.
If the *url* uses the :file:`http:` scheme identifier, the optional *data* If the *url* uses the :file:`http:` scheme identifier, the optional *data*
argument may be given to specify a ``POST`` request (normally the request type argument may be given to specify a ``POST`` request (normally the request
is ``GET``). The *data* argument must in standard type is ``GET``). The *data* argument must be a bytes object in standard
:mimetype:`application/x-www-form-urlencoded` format; see the :func:`urlencode` :mimetype:`application/x-www-form-urlencoded` format; see the
function below. :func:`urlencode` function below.
:func:`urlretrieve` will raise :exc:`ContentTooShortError` when it detects that :func:`urlretrieve` will raise :exc:`ContentTooShortError` when it detects that
the amount of data available was less than the expected amount (which is the the amount of data available was less than the expected amount (which is the
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment