fix for a bug reported by David (UnicodeDecodeError: url = url + '?' + query)

This commit is contained in:
Miroslav Stampar 2011-05-10 12:51:37 +00:00
parent a64407d9db
commit 1dea609019

View File

@ -87,22 +87,22 @@ class Connect:
# dirty hack because urllib2 just skips the other part of provided url # dirty hack because urllib2 just skips the other part of provided url
# splitted with space char while urlencoding it in the later phase # splitted with space char while urlencoding it in the later phase
url = kwargs.get('url', conf.url).replace(" ", "%20") url = kwargs.get('url', conf.url).replace(" ", "%20")
get = kwargs.get('get', None) get = kwargs.get('get', None)
post = kwargs.get('post', None) post = kwargs.get('post', None)
method = kwargs.get('method', None) method = kwargs.get('method', None)
cookie = kwargs.get('cookie', None) cookie = kwargs.get('cookie', None)
ua = kwargs.get('ua', None) ua = kwargs.get('ua', None)
referer = kwargs.get('referer', None) referer = kwargs.get('referer', None)
direct = kwargs.get('direct', False) direct = kwargs.get('direct', False)
multipart = kwargs.get('multipart', False) multipart = kwargs.get('multipart', False)
silent = kwargs.get('silent', False) silent = kwargs.get('silent', False)
raise404 = kwargs.get('raise404', True) raise404 = kwargs.get('raise404', True)
auxHeaders = kwargs.get('auxHeaders', None) auxHeaders = kwargs.get('auxHeaders', None)
response = kwargs.get('response', False) response = kwargs.get('response', False)
ignoreTimeout = kwargs.get('ignoreTimeout', False) ignoreTimeout = kwargs.get('ignoreTimeout', False)
refreshing = kwargs.get('refreshing', False) refreshing = kwargs.get('refreshing', False)
page = "" page = ""
cookieStr = "" cookieStr = ""
@ -113,6 +113,10 @@ class Connect:
responseHeaders = None responseHeaders = None
logHeaders = "" logHeaders = ""
# there are known issues when using url in unicode format
# (e.g. UnicodeDecodeError: "url = url + '?' + query" in redirect case)
url = unicodeencode(url)
try: try:
if silent: if silent:
socket.setdefaulttimeout(HTTP_SILENT_TIMEOUT) socket.setdefaulttimeout(HTTP_SILENT_TIMEOUT)