On Sun, Nov 04, 2007 at 05:14:31PM -0800, Jeff Peery wrote: > hello, > I'm pretty new to using python on the web, I've got a bit of code > that works pretty well to get form inputs and such. Now I need to post > some info to a gateway service (for credit card processing) and then > receive their response and do something with it. I can do this no > problem... except that I'm not sure how to post my dictionary (name > value pairs from form inputs i.e., credit card num, expire dates etc) > from the cgi script. I had been using the html forms to submit data to > the server, but now I need to do this from my cgi script. I think this is > pretty straight forward but I didn't see anything in the cgi module. > where do I start, or does anyone have some sample code? thanks!!
You'll need httplib which luckily come with the stdlib so no need to install anything. Something like this should get you going: conn = httplib.HTTPConnection(remote_server) values = '&'.join([ '%s=%s' % a for a in values.items() ]) headers={'Content-Type':'application/x-www-form-urlencoded'} conn.request(method, url, values, headers=headers) res = conn.getresponse() data = res.read() return (res.status, res.reason, output) the important bits here are our crappy makeshift application/x-www-form-urlencoded rncoder which is the values line and our setting of the content-type. We also need to make sure the method passed to conn.request is 'POST' or 'PUT' (almost certainly POST) as these are the only ones that accept a body. I think the cgi module may have a better way of doing the encoding, but i've never found it. Alex _______________________________________________ Web-SIG mailing list Web-SIG@python.org Web SIG: http://www.python.org/sigs/web-sig Unsubscribe: http://mail.python.org/mailman/options/web-sig/archive%40mail-archive.com