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