Charmed Quark Systems, Ltd. - Support Forums and Community

Full Version: HTTP Post
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Dean, I was wondering if you or anyone else can help me with this:

##########################################################################################
# FUNCTION sendpost
# INPUT - outpost or inpost
# SENDS AN HTML POST TO CQC MASTER SERVER
# RETURNS - NOTHING
##########################################################################################
#
def sendpost(tosend,param):
        httpServ = httplib.HTTPConnection("10.0.1.8", 17942)
        httpServ.connect()

        if tosend == "outpost":
                httpServ.request('POST', '/VanOutRange?1=%s' % param)
                response = httpServ.getresponse()

        elif tosend == "inpost":
                httpServ.request('POST', '/VanInRange?1=%s' % param)
                response = httpServ.getresponse()

        httpServ.close()
# FUNCTION sendpost END
##########################################################################################

This is python code which sends a post to the CQC Html listener with one parameter. 

The parameter is read by the listener as CQCActParm_2. 

Works fine, but I'd like to send more than one parameter. I can't get the python code to work nor can I find any good examples on the net. 

I've tried various forms of: 

httpServ.request('POST', '/VanOutRange?1=%s' % param)

httpServ.request('POST', '/VanOutRange?1=%s2=%s2' % param % param2)

The latter fails with an error. 

Any idea what the right format might be?
Keep in mind that the HTTP URL requires an ampersand between the parameters. So, assuming the last one above is correct, you would want to add an ampersand before the first 2.

httpServ.request('POST', '/VanOutRange?1=%s&2=%s2' % param % param2)

Of course ampersand may be a special character in Python, so you might have to escape it to get to be taken literally.
(05-17-2018, 09:35 AM)Dean Roddey Wrote: [ -> ]Keep in mind that the HTTP URL requires an ampersand between the parameters. So, assuming the last one above is correct, you would want to add an ampersand before the first 2.

httpServ.request('POST', '/VanOutRange?1=%s&2=%s2' % param % param2)

Of course ampersand may be a special character in Python, so you might have to escape it to get to be taken literally.

 httpServ.request('POST', '/TempListener1?1=%s&2=%s' % param1&param2)

I tried this and it gives an error. 

Anything else you can see in there that I might try?
BTW, that's a different program than the original code I sent you, but same idea.
I know nothing about Python. Is there any way you can see the resulting text that youa re creating? I'm guessing that you don't want the ampersand in the right hand side. That's Python syntax over there. You need it on the left side because that's HTML syntax.
(05-17-2018, 09:59 AM)Dean Roddey Wrote: [ -> ]I know nothing about Python. Is there any way you can see the resulting text that youa re creating? I'm guessing that you don't want the ampersand in the right hand side. That's Python syntax over there. You need it on the left side because that's HTML syntax.

Thanks Dean. 

I can't figure it out. I think that's an outdated way of sending HTML posts and so there aren't any examples. 

It's not a big deal.
Maybe try GET instead of post. I'm don't know Python either but I've seen this work better elsewhere.
(05-18-2018, 06:14 AM)RichardU Wrote: [ -> ]Maybe try GET instead of post. I'm don't know Python either but I've seen this work better elsewhere.

Thanks Richard. 

Ill look into that.