Problems with POST -Solved

Sunit Joshi sjoshi at ingr.com
Mon Feb 25 09:31:03 EST 2002


This line was missing (below). The moment I put this, everything wroked fine

req.putheader("Content-type", "application/x-www-form-urlencoded")

thanks
Sunit

Jeff Davis <jdavis at empires.org> wrote in message news:<a5bjib$l1c$1 at news1.ucsd.edu>...
> Can you run the second script as a cgi and load it with a web browser to 
> determine which script is not behaving correctly? I have a suspicion that 
> the first script is somehow not posting quite correctly.
> 
> Regards,
>         Jeff
> 
> Sunit Joshi wrote:
> 
> > Hello
> > Somehow I can't seem to get any data with POST although the same
> > script (with modifications in the first one) works for GET . Here's
> > the scripts: First one is to POST and next one to recieve the POSTED
> > data.
> > 
> > #!C:\Python21\Python.exe -u
> > #To POST and output the data - postTest.py
> > 
> > from httplib import HTTP
> > from urllib import quote
> > 
> > quoteData = "Sunit Joshi"
> > postData = 'txtName=' + quote(quoteData)
> > 
> > print 'Will POST ', len(postData), 'bytes:', postData
> > 
> > # begin HTTP request
> > req = HTTP('sunitw2k:6080')
> > req.putrequest("POST" ,'/PyCgi/formTest.py')
> > req.putheader("Accept", "text/html")
> > req.putheader("User-Agent", "postTest.py")
> > 
> > # Set Content-length to length of PostData
> > req.putheader("Content-length", str(len(postData)))
> > req.endheaders()
> > 
> > # Send POST data after ending headers
> > req.send(postData)
> > 
> > replycode, message, headers = req.getreply()
> > print "HTTP RESPONSE: ", replycode, message
> > print 'HEADERS: ', str(headers)
> > 
> > # Get file-like object from HTTP response
> > # and print received HTML to screen.
> > fd = req.getfile()
> > txtlines = fd.read()
> > fd.close()
> > print '\nReceived following HTML:\n'
> > print txtlines
> > 
> > #************************
> > #!c:\Python21\Python.exe -u
> > # To send the data posted - formTest.py
> > import sys
> > import cgi
> > 
> > sys.stderr = sys.stdout
> > 
> > form = cgi.FieldStorage()
> > print "Content-type: text/html"
> > print
> > if not form:
> > print "<h2>Field 'txtName' not filled in.</h2>"
> > print str(form)
> > else:
> > print '<h3>You entered <font color="#FF6600">%s</font></h3>' %
> > form.getvalue('txtName','none')



More information about the Python-list mailing list