Smart folks,
I would like to use the awesome requests module in my jython program. It installs and runs just fine in python but I cannot get it to install in jython. I h
Edit: as of May 2015, the current stable version of requests, 2.7.0, no longer suffers from the original error in Jython --Aprillion
The bug you are facing has been fixed some time ago in the development versions of urllib3 and requests.
As you won't be able to install it as it will blow up pip/easy_install with java.lang.RuntimeException: java.lang.RuntimeException: Class file too large! you have to run it directly from the source tree.
There you can fix the import bug by replacing all of the ssl_wrap_socket
stuff at the end of requests/packages/urllib3/util.py
with a dummy method like:
def ssl_wrap_socket(sock, keyfile=None, certfile=None, cert_reqs=None,
ca_certs=None, server_hostname=None,
ssl_version=None):
raise Error('This is not meant to be called')
(If ssl support is a concern to you: it is broken at the moment anyways)
As jython is missing support for idna you have to remove this too.
Go to line 290 of request/models.py
and replace 'idna'
by 'utf-8
'.
So if you don't need to use ssl or idna those steps should work.
Followup: The relevant ssl bug in jython is tracked here: http://bugs.jython.org/issue2016
This problem has been resolved - please use Jython 2.7 beta 4 (or the final release).