[Tutor] How to use urllib2.https_open with SSL support in Windows XP for python 2.5.2]
arsyed
arsyed at gmail.com
Tue Aug 19 10:36:08 CEST 2008
On Mon, Aug 18, 2008 at 9:36 PM, xbmuncher <xboxmuncher at gmail.com> wrote:
> I tried it just like both of you suggested and sent a req object straight to
> urlopen. Here is my code:
> import urllib2
> url = 'https://url.com'
> headers = {
> 'User-Agent' : 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)',
> 'Accept' :
> 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5',
> 'Accept-Language' : 'fr-fr,en-us;q=0.7,en;q=0.3',
> 'Accept-Charset' : 'ISO-8859-1,utf-8;q=0.7,*;q=0.7'
> }
>
> #None = GET; set values to use POST
> req = urllib2.Request(url, None, headers)
> handle = urllib2.urlopen(req)
> resp = handle.read()
> print resp.geturl()
> print resp.info()
> print resp
>
> resp.close()
>
>
>
> Here is the error msg:
> Traceback (most recent call last):
> File "C:\Documents and Settings\user\Desktop\https_query.py", line 16, in
> <module>
> handle = urllib2.urlopen(req)
> File "C:\Python25\lib\urllib2.py", line 124, in urlopen
> return _opener.open(url, data)
> File "C:\Python25\lib\urllib2.py", line 381, in open
> response = self._open(req, data)
> File "C:\Python25\lib\urllib2.py", line 399, in _open
> '_open', req)
> File "C:\Python25\lib\urllib2.py", line 360, in _call_chain
> result = func(*args)
> File "C:\Python25\lib\urllib2.py", line 1115, in https_open
> return self.do_open(httplib.HTTPSConnection, req)
> File "C:\Python25\lib\urllib2.py", line 1080, in do_open
> r = h.getresponse()
> File "C:\Python25\lib\httplib.py", line 928, in getresponse
> response.begin()
> File "C:\Python25\lib\httplib.py", line 385, in begin
> version, status, reason = self._read_status()
> File "C:\Python25\lib\httplib.py", line 349, in _read_status
> raise BadStatusLine(line)
> BadStatusLine
What URL are you trying this against? The URL in your code
"https://url.com" doesn't seem to respond at all so I can't reproduce
your error. Have you tried against a well known HTTPS endpoint like
"https://mail.google.com"? What happens?
I'll try to guess anyway .. the Status Line in an HTTP response is the
first line that gives the response code, something like "HTTP/1.1 200
OK". Maybe your server is returning malformed headers?
See below for more:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html
More information about the Tutor
mailing list