[ python-Bugs-1519816 ] urllib2 proxy does not work in 2.4.3

SourceForge.net noreply at sourceforge.net
Mon Jul 10 14:49:05 CEST 2006


Bugs item #1519816, was opened at 2006-07-10 08:29
Message generated for change (Comment added) made by gbrandl
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1519816&group_id=5470

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Python Library
Group: Python 2.4
Status: Open
Resolution: None
Priority: 5
Submitted By: Michal Niklas (mniklas)
Assigned to: Nobody/Anonymous (nobody)
>Summary: urllib2 proxy does not work in 2.4.3

Initial Comment:
My python app had to retrieve some web pages and while 
our network environment requires proxy it uses urllib2 
opener (source is in attachment). It worked very well 
on older Python interpreters:
ActivePython 2.4.2 Build 248 (ActiveState Corp.) based 
on
Python 2.4.2 (#67, Oct 30 2005, 16:11:18) [MSC v.1310 
32 bit (Intel)] on win32

It works on linux with 2.3 and 2.4.1:
Python 2.4.1 (#2, May 5 2005, 11:32:06)
[GCC 3.3.5 (Debian 1:3.3.5-12)] on linux2

But it does not work with newest 2.4.3 on Linux:
Python 2.4.3 (#1, Jul 10 2006, 09:57:52)
[GCC 3.3.5 (Debian 1:3.3.5-13)] on linux2

Desired result:
isof-mark:~# python2.3 proxy_bug.py
trying http://www.python.org ...
OK.  We have reply from http://www.python.org.
Size: 13757 [b]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 
Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/
xhtml1-transitional.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/
1999/xhtml">
<head>
<me
...
 Yorkshire">design by pollenation</a>
</div>
Copyright Š 1990-2006, <a href="psf">Python Software 
Foundation</a><br />
<a href="about/legal">Legal Statements</a>
</div>
</div>
</div>
</body>
</html>


isof-mark:~# /usr/local/bin/python proxy_bug.py
trying http://www.python.org ...
Traceback (most recent call last):
  File "proxy_bug.py", line 37, in ?
    get_page()
  File "proxy_bug.py", line 27, in get_page
    f = urllib2.urlopen(request)
  File "/usr/local/lib/python2.4/urllib2.py", line 
130, in urlopen
    return _opener.open(url, data)
  File "/usr/local/lib/python2.4/urllib2.py", line 
364, in open
    response = meth(req, response)
  File "/usr/local/lib/python2.4/urllib2.py", line 
471, in http_response
    response = self.parent.error(
  File "/usr/local/lib/python2.4/urllib2.py", line 
402, in error
    return self._call_chain(*args)
  File "/usr/local/lib/python2.4/urllib2.py", line 
337, in _call_chain
    result = func(*args)
  File "/usr/local/lib/python2.4/urllib2.py", line 
480, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, 
hdrs, fp)
urllib2.HTTPError: HTTP Error 407: Proxy 
Authentication Required

I have raported it on ActiveState bug list (http://
bugs.activestate.com/show_bug.cgi?id=47018) while I 
first spot this bug on their destribution but it seems 
that bug is in others distributions too.

Regards,
Michal Niklas


----------------------------------------------------------------------

>Comment By: Georg Brandl (gbrandl)
Date: 2006-07-10 12:49

Message:
Logged In: YES 
user_id=849994

Can you please try with 2.5b1? A lot of urllib2 related bugs
have been fixed before this release.

----------------------------------------------------------------------

Comment By: Michal Niklas (mniklas)
Date: 2006-07-10 08:41

Message:
Logged In: YES 
user_id=226518

Cannot add attachment via upload so I put it here:
#!/usr/bin/python
# -*- coding: cp1250 -*-

import urllib
import urllib2

def get_page():
	url = 'http://www.python.org'
	print "trying %s ..." % (url)

	# Setup proxy & authentication
	proxy = "poczta.heuthes:8080"
	usr1 = "USER"
	pass1 = "PASSWD"
	proxy_handler = urllib2.ProxyHandler({"http" : "http:/
/" + proxy})
	pass_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
	pass_mgr.add_password(None, "http://" + proxy, usr1, 
pass1)
	pass_mgr.add_password(None, proxy, usr1, pass1)
	auth_handler = urllib2.HTTPBasicAuthHandler(pass_mgr)
	proxy_auth_handler = 
urllib2.ProxyBasicAuthHandler(pass_mgr)

	# Now build a new URL opener and install it
	opener = urllib2.build_opener(proxy_handler, 
proxy_auth_handler, auth_handler, urllib2.HTTPHandler)
	urllib2.install_opener(opener)

	request = urllib2.Request(url)
	f = urllib2.urlopen(request)
	data = f.read()
	print "OK.  We have reply from %s.\nSize: %d [b]" % 
(url, len(data))
	if len(data) < 400:
		print data
	else:
		print data[:200]
		print "..."
		print data[-200:]

get_page()


----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1519816&group_id=5470


More information about the Python-bugs-list mailing list