This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: urllib2 cannot make POST with utf-8 content
Type: Stage:
Components: Unicode Versions: Python 2.7
process
Status: closed Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: ezio.melotti, orsenthil, Андрей.Р
Priority: normal Keywords:

Created on 2012-04-12 08:11 by Андрей.Р, last changed 2022-04-11 14:57 by admin. This issue is now closed.

Messages (3)
msg158114 - (view) Author: Андрей Р (Андрей.Р) Date: 2012-04-12 08:11
Issue can be found only in 2.7, in 2.6.6 it works

System:
    Linux strix 3.2.14-1-ARCH x86_64
Python information:
    Python 2.7.2 (default, Jan 31 2012, 13:19:49) [GCC 4.6.2 20120120 (prerelease)] on linux2

Snippet to reproduce error:

# -*- encoding: utf-8 -*-
import urllib2

request = urllib2.Request('http://google.com', u'Контент', {'Content-Type': 'text/plain; charset=utf-8'})
urllib2.urlopen(request).read()

Stacktrace:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/urllib2.py", line 126, in urlopen
    return _opener.open(url, data, timeout)
  File "/usr/lib/python2.7/urllib2.py", line 394, in open
    response = self._open(req, data)
  File "/usr/lib/python2.7/urllib2.py", line 412, in _open
    '_open', req)
  File "/usr/lib/python2.7/urllib2.py", line 372, in _call_chain
    result = func(*args)
  File "/usr/lib/python2.7/urllib2.py", line 1199, in http_open
    return self.do_open(httplib.HTTPConnection, req)
  File "/usr/lib/python2.7/urllib2.py", line 1168, in do_open
    h.request(req.get_method(), req.get_selector(), req.data, headers)
  File "/usr/lib/python2.7/httplib.py", line 955, in request
    self._send_request(method, url, body, headers)
  File "/usr/lib/python2.7/httplib.py", line 989, in _send_request
    self.endheaders(body)
  File "/usr/lib/python2.7/httplib.py", line 951, in endheaders
    self._send_output(message_body)
  File "/usr/lib/python2.7/httplib.py", line 815, in _send_output
    self.send(message_body)
  File "/usr/lib/python2.7/httplib.py", line 787, in send
    self.sock.sendall(data)
  File "/usr/lib/python2.7/socket.py", line 224, in meth
    return getattr(self._sock,name)(*args)
msg158115 - (view) Author: Андрей Р (Андрей.Р) Date: 2012-04-12 08:15
# -*- encoding: utf-8 -*-
import urllib2

request = urllib2.Request('http://google.com', u'Контент'.encode("utf-8"), {'Content-Type': 'text/plain; charset=utf-8'})
urllib2.urlopen(request).read()
msg158116 - (view) Author: Андрей Р (Андрей.Р) Date: 2012-04-12 08:27
Sorry. My fault
History
Date User Action Args
2022-04-11 14:57:29adminsetgithub: 58765
2012-04-12 11:15:39orsenthilsetnosy: + orsenthil
2012-04-12 08:27:51Андрей.Рsetmessages: + msg158116
2012-04-12 08:27:40Андрей.Рsetstatus: open -> closed
2012-04-12 08:15:45Андрей.Рsetmessages: + msg158115
2012-04-12 08:11:59Андрей.Рcreate