urllib2 problem/bug: Request.add_header does() nothing?

K

kelio

I have a simple cgi-script on a server that prints all key-value pairs
from a request. And it really works when i use a browser and type smth
like http://server/cgi-bin/test?name=mike&johny=dummy. But when I use
the following script, nothing is printed (like i type
http://server/cgi-bin/test request in the browser).

What is wrong about it? It's hard to believe there's a bug nobody's
noticed for such a long time (I've tried Python 2.1.3 and 2.4.1 on
Windows, and 2.2.2 on Linux).

I've also tried to make a request using urllib (without 2) sending
pairs as data in a POST request - and it also worked.

Thanks for help!

elio.

#!/usr/bin/python

import urllib2

request = urllib2.Request(r"http://server/cgi-bin/test")
request.add_header("product", "SohoCore")
request.add_header("version", "1.1")
request.add_header("build", "1251")

reply = urllib2.urlopen(request).readlines()

for i in reply:
print i
 
F

Fuzzyman

I have a simple cgi-script on a server that prints all key-value pairs
from a request. And it really works when i use a browser and type smth
like http://server/cgi-bin/test?name=mike&johny=dummy. But when I use
the following script, nothing is printed (like i type
http://server/cgi-bin/test request in the browser).

What is wrong about it? It's hard to believe there's a bug nobody's
noticed for such a long time (I've tried Python 2.1.3 and 2.4.1 on
Windows, and 2.2.2 on Linux).

I've also tried to make a request using urllib (without 2) sending
pairs as data in a POST request - and it also worked.

Thanks for help!

elio.

#!/usr/bin/python

import urllib2

request = urllib2.Request(r"http://server/cgi-bin/test")
request.add_header("product", "SohoCore")
request.add_header("version", "1.1")
request.add_header("build", "1251")

reply = urllib2.urlopen(request).readlines()

for i in reply:
print i


The add_header method adds http headers to your http request - it
*doesn't* post any data to your CGI.

What you need to do is encode a dictionary of your parameters using
``urllib.urlencode`` (*not* urllib2) - then pass it as the second
parameter to urllib2.urlopen.

HTH

Best Regards,

Fuzzy
http://www.voidspace.org.uk/python
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,768
Messages
2,569,574
Members
45,051
Latest member
CarleyMcCr

Latest Threads

Top