views:

115

answers:

2

In my python app I try to open a https url, but I get:

 File "C:\Python26\lib\urllib.py", line 215, in open_unknown
    raise IOError, ('url error', 'unknown url type', type)
IOError: [Errno url error] unknown url type: 'https'

my code:

import urllib
def generate_embedded_doc(doc_id):
    url = "https://docs.google.com/document/ub?id=" + doc_id + "&embedded=true"
    src = urllib.urlopen(url).read()
    ...
    return src
+1  A: 

urllib and Python 2.6 have SSL support and your code example works fine for me. Probably your Python is built without SSL support? Try to reinstall Python 2.6 (or better, 2.7) and use the original build from python.org.

On Google App Engine, try to use the API directly:

from google.appengine.api import urlfetch

url = "https://www.google.com/"
result = urlfetch.fetch(url)
if result.status_code == 200:
  doSomethingWithResult(result.content)
leoluk
I have Python 2.6, but since I'm using GAE it might make some restrictions on that (because it's build for Python 2.5)
Halst
I have extended my answer; do you use Google's SDK? it doesn't supports Python 2.6, but the path in your example is `C:\Python26\lib\urllib.py`
leoluk
`urllib`, `urllib2` and `httplib` don't verify the server certificate when using HTTPS, which doesn't make the use of HTTPS secure unfortunately. (There are ways around it, but it needs a bit more code.)
Bruno