mirror of
https://github.com/python/cpython.git
synced 2025-08-03 08:34:29 +00:00
Fixed issue11082 - Reject str for POST data with a TypeError. Document the need to explicitly encode to bytes when using urlencode.
This commit is contained in:
parent
44028d8663
commit
2933312fe7
4 changed files with 23 additions and 9 deletions
|
@ -967,7 +967,7 @@ when the Python installation supports SSL. ::
|
|||
|
||||
>>> import urllib.request
|
||||
>>> req = urllib.request.Request(url='https://localhost/cgi-bin/test.cgi',
|
||||
... data='This data is passed to stdin of the CGI')
|
||||
... data=b'This data is passed to stdin of the CGI')
|
||||
>>> f = urllib.request.urlopen(req)
|
||||
>>> print(f.read().decode('utf-8'))
|
||||
Got Data: "This data is passed to stdin of the CGI"
|
||||
|
@ -1043,11 +1043,13 @@ containing parameters::
|
|||
>>> f = urllib.request.urlopen("http://www.musi-cal.com/cgi-bin/query?%s" % params)
|
||||
>>> print(f.read().decode('utf-8'))
|
||||
|
||||
The following example uses the ``POST`` method instead::
|
||||
The following example uses the ``POST`` method instead. Note that params output
|
||||
from urlencode is encoded to bytes before it is sent to urlopen as data::
|
||||
|
||||
>>> import urllib.request
|
||||
>>> import urllib.parse
|
||||
>>> params = urllib.parse.urlencode({'spam': 1, 'eggs': 2, 'bacon': 0})
|
||||
>>> params = params.encode('utf-8')
|
||||
>>> f = urllib.request.urlopen("http://www.musi-cal.com/cgi-bin/query", params)
|
||||
>>> print(f.read().decode('utf-8'))
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue