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.

Author Mi.Zou
Recipients Mi.Zou, ezio.melotti
Date 2013-02-16.12:30:44
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1361017844.78.0.75396894765.issue17214@psf.upfronthosting.co.za>
In-reply-to
Content
while urllib following the redirection(302):
http.client.HTTPConnection.putrequest raise an error:
#----------------------------------------------------------
...
  File "D:\Program Files\Python32\lib\http\client.py", line 1004, in _send_request
    self.putrequest(method, url, **skips)
  File "D:\Program Files\Python32\lib\http\client.py", line 868, in putrequest
    self._output(request.encode('ascii'))
UnicodeEncodeError: 'ascii' codec can't encode characters in position 108-111: ordinal not in range(128)
#----------------------------------------------------------
in the sourcode i found that:
at line 811

def putrequest(self, method, url, skip_host=0,skip_accept_en...)
...

the argument url may be a unicode,and it was unquoted..
----------------------------note----------------------------------------
in my case:
...
purl="http://bbs.dospy.com/1111258attachdown.php?aid=14361277&bbsid=349"
req=urllib.request.Request(purl,headers=headers)
response=urllib.request.urlopen(req)
...

then,the http serve redirect me to a file download url...
and the url contains some Chinese word....
i have print out the argument url:

/f/1ba1f70606223af2aa5c3aeff6c6a46a/511f7b4c/day_111015/20111015_5949e996881b2e28403d26Ch6dOfj6LZ.rar/p/ÒâÁÖ03-08.part1.rar
History
Date User Action Args
2013-02-16 12:30:44Mi.Zousetrecipients: + Mi.Zou, ezio.melotti
2013-02-16 12:30:44Mi.Zousetmessageid: <1361017844.78.0.75396894765.issue17214@psf.upfronthosting.co.za>
2013-02-16 12:30:44Mi.Zoulinkissue17214 messages
2013-02-16 12:30:44Mi.Zoucreate