fixed issue 1696:webclient not built to handle lists, thanks Yair
This commit is contained in:
@@ -1 +1 @@
|
|||||||
Version 2.6.4-stable+timestamp.2013.09.27.13.07.13
|
Version 2.6.4-stable+timestamp.2013.10.01.15.24.15
|
||||||
|
|||||||
@@ -48,6 +48,18 @@ class WebClient(object):
|
|||||||
self.sessions = {}
|
self.sessions = {}
|
||||||
self.session_regex = session_regex and re.compile(session_regex)
|
self.session_regex = session_regex and re.compile(session_regex)
|
||||||
|
|
||||||
|
def web2py_url_encode(self, data):
|
||||||
|
output = []
|
||||||
|
for var in data:
|
||||||
|
val = data[var]
|
||||||
|
if type(val)==list:
|
||||||
|
for item in val:
|
||||||
|
output += ['%s=%s' % (urllib.quote_plus(var), urllib.quote_plus(item)),]
|
||||||
|
else:
|
||||||
|
output += ['%s=%s' % (urllib.quote_plus(var), urllib.quote_plus(val)),]
|
||||||
|
|
||||||
|
return '&'.join(output)
|
||||||
|
|
||||||
def get(self, url, cookies=None, headers=None, auth=None):
|
def get(self, url, cookies=None, headers=None, auth=None):
|
||||||
return self.post(url, data=None, cookies=cookies,
|
return self.post(url, data=None, cookies=cookies,
|
||||||
headers=headers, method='GET')
|
headers=headers, method='GET')
|
||||||
@@ -119,7 +131,7 @@ class WebClient(object):
|
|||||||
data['_formkey'] = self.forms[data['_formname']]
|
data['_formkey'] = self.forms[data['_formname']]
|
||||||
|
|
||||||
# time the POST request
|
# time the POST request
|
||||||
data = urllib.urlencode(data)
|
data = self.web2py_url_encode(data)
|
||||||
else:
|
else:
|
||||||
self.method = 'GET' if method=='auto' else method
|
self.method = 'GET' if method=='auto' else method
|
||||||
data = None
|
data = None
|
||||||
|
|||||||
Reference in New Issue
Block a user