fixed issue 1696:webclient not built to handle lists, thanks Yair

This commit is contained in:
Massimo
2013-10-01 15:25:34 -05:00
parent f0010f320e
commit 66d6b3b511
2 changed files with 14 additions and 2 deletions

View File

@@ -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

View File

@@ -48,6 +48,18 @@ class WebClient(object):
self.sessions = {}
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):
return self.post(url, data=None, cookies=cookies,
headers=headers, method='GET')
@@ -119,7 +131,7 @@ class WebClient(object):
data['_formkey'] = self.forms[data['_formname']]
# time the POST request
data = urllib.urlencode(data)
data = self.web2py_url_encode(data)
else:
self.method = 'GET' if method=='auto' else method
data = None