Strangely I found that the login forms works even when encode the data as 
usual for application/x-www-form-urlencoded:

cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
html = opener.open(login_url).read()

formkey = xpath.get(html, '//input[@name="_formkey"]/@value')
data = {'email': email, 'password': password, '_formkey': formkey, 
'_formname': 'login', '_next': '/', 'remember': 'on'}
encoded_data = urllib.urlencode(data)
request = urllib2.Request(url, encoded_data)
response = opener.open(request)


Is that as expected?


On Sunday, January 11, 2015 at 3:32:31 PM UTC+8, Richard Penman wrote:
>
> Do you happen to have made a script that can login to web2py?
> It looks quite complex because have to manage the _formkey and login form 
> uses multipart/form-data instead of application/x-www-form-urlencoded.
>
> I have this working solution using mechanize:
>
> br = mechanize.Browser()
> br.open(login_url)
> br.select_form(nr=0)
> br['email'] = email
> br['password'] = password
> response = br.submit()
>
>
> But looking for something using urllib2, and not loading a web2py specific 
> library.
>
>
>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to