"jponiato" <[EMAIL PROTECTED]> writes:

> Greetings.
> An HTML form submits it's data to a python cgi script on my server. This 
> script accepts this POST data, and uses urllib.urlopen() to call a different 
> cgi script (on an external server), passing this same data. I'm using 
> cgi.FieldStorage() to create a mapping of the FORM data, then using 
> urllib.urlencode() to turn it back into form data for urlopen().
> Question - is there a more efficient way to do this?

Yes. But the question you should be asking is "Is there an easier way
to do it that's worth doing?"

Unless you're passing around files, or really huge forms, the amount
of time you spend doing decoding and encodinng the form data will be
pretty trivial. Unless you're really pressed for cycles, why bother
fixing it? And if you're really pressed for cycles, you should start
by instrumenting things to make sure that you're optimizing something
that will do you some good.

Anyway, the general idea is to skip cgi.FieldStorage, and parse the
request yourself. You'll have to deal with the headers. But you can
just grab the post data with a read(). I'm not sure you can use urllib
to send pre-encoded POST data; you'll have to check that yourself. If
not, you'll have to do the HTTP request processing by yourself. That's
not hard, though.

    <mike
-- 
Mike Meyer <[EMAIL PROTECTED]>                  http://www.mired.org/home/mwm/
Independent WWW/Perforce/FreeBSD/Unix consultant, email for more information.
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to