Connecting to internet under proxy

Steve Holden steve at holdenweb.com
Mon Jul 24 11:55:21 EDT 2006


Chema wrote:
> Hi all.
> 
>    I have a little script to connect to the internet and download some
> files. I developed it in my house (direct connection) and it wordked
> properly. But the problem is that in the office (under a proxy) it
> doesn't run. My script is like:
> 
> import urllib
> f=urllib.urlopen(SOME_WEB)
> print f.read
> 
> I have tried to set the environmet variable
> http_proxy="192.168.1.100:2929" and also:
> 
> import urllib
> proxy={'http','http://192.168.1.100:2929'} and using
> f=urllib.urlopen(SOME_WEB, proxy)
> print f.read
> 
> the error was always the same:
> 
> (11001, 'getaddrinfo failed')
> 
> 
> Any idea?? The proxy that we use is normally, in some programs I use a
> tipical http proxy without authentification without problem.
> 
> Thanks in advanced.
> 
sholden at bigboy /c/colinux
$ export http_proxy="http://localhost:37004"

sholden at bigboy /c/colinux
$ python
Python 2.5b2 (trunk:50713, Jul 19 2006, 16:04:09)
[GCC 3.4.4 (cygming special) (gdc 0.12, using dmd 0.125)] on cygwin
Type "help", "copyright", "credits" or "license" for more information.
Started with C:/Steve/.pythonrc
  >>> import urllib
  >>> u = urllib.urlopen("http://www.holdenweb.com/")
  >>>

OK, it works with an environment variable (I saw the access in my 
mousehole proxy log). Now in a new shell:

sholden at bigboy ~
$ export | grep http

sholden at bigboy ~
$ python
Python 2.5b2 (trunk:50713, Jul 19 2006, 16:04:09)
[GCC 3.4.4 (cygming special) (gdc 0.12, using dmd 0.125)] on cygwin
Type "help", "copyright", "credits" or "license" for more information.
Started with C:/Steve/.pythonrc
  >>> import urllib
  >>> proxy = {'http': 'http://localhost:37004'}
  >>> u = urllib.urlopen("http://www.holdenweb.com/", proxies=proxy)
  >>>

Yup. that worked too. Maybe it's just because you aren't making proxies 
a keyword argument? If I try that (under cygwin) I see:

  >>> u = urllib.urlopen("http://www.holdenweb.com/", proxy)
Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
   File "/usr/local/lib/python2.5/urllib.py", line 84, in urlopen
     return opener.open(url, data)
   File "/usr/local/lib/python2.5/urllib.py", line 192, in open
     return getattr(self, name)(url, data)
   File "/usr/local/lib/python2.5/urllib.py", line 327, in open_http
     h.send(data)
   File "/usr/local/lib/python2.5/httplib.py", line 707, in send
     self.sock.sendall(str)
   File "<string>", line 1, in sendall
TypeError: sendall() argument 1 must be string or read-only buffer, not dict

regards
  Steve
-- 
Steve Holden       +44 150 684 7255  +1 800 494 3119
Holden Web LLC/Ltd          http://www.holdenweb.com
Skype: holdenweb       http://holdenweb.blogspot.com
Recent Ramblings     http://del.icio.us/steve.holden




More information about the Python-list mailing list