How to do CGI POST as client?
[1/3] from: dud::monmouth::com at: 13-Dec-2000 14:06
Folks,
I've tried to create a simple script that submits a filled out form
to a CGI server, but the server access log only shows a GET, not a POST
operation. Is the "read/custom . . . post" construct broken? I saw
an earlier query on the rebol-list archives asking a similar question
but no reply to it (or I wouldn't have bothered you.
This script should do a query of a database and return with an answer.
Instead, it just returns the original form as if the POST didn't happen.
(And that's what apache's access_log on the web server shows.)
Thanks,
Bill Dudley
Monmouth Internet
P.S. script below.
REBOL[
Title: "dud's test"
Date: cvs-date "$Date: 2000/12/13 13:53:35 $"
;Version: "$Revision: 1.0 $"
Rights: "Copyright (C) William Dudley 2000"
]
sites: [
[ url: http://badminout.monmouth.com/cgi-bin/cgiwrap/dud/dsl.cgi ]
]
foreach site sites [
do site
result: read/custom url [ post {npa="732"&nxx="842"&process="Lookup"} ]
tag-text: load/markup result
text: make string! 2000
foreach item tag-text [
if string? item [append text item]
]
print text
print url
print {npa="732"&nxx="842"&process="Lookup"}
]
[2/3] from: sterling:rebol at: 13-Dec-2000 13:45
You had it except you added quotes around Lookup. Change this line:
> result: read/custom url [ post {npa="732"&nxx="842"&process="Lookup"} ]
to:
> result: read/custom url [ post {npa="732"&nxx="842"&process=Lookup} ]
and you'll be fine.
Sterling
[3/3] from: dud:monmouth at: 13-Dec-2000 17:09
Sterling,
Thanks for the reply, but . . . that doesn't seem to fix it.
(Incidentally, I'm running the latest rebol for FreeBSD. Pity that
rebol -v
doesn't print a version number.
Anyway, even without the quotes, the server is not seeing this as a POST operation:
Here's the log entry after I just tried it without the quotes:
(folded for readability)
squid.monmouth.com - - [13/Dec/2000:16:57:29 -0500]
GET /cgi-bin/cgiwrap/dud/dsl.cgi HTTP/1.0
200 1683
This script should run from anywhere on earth, and if you get a list of
phone exchanges, like this:
609
718
732
856
908
914
917
973
Then the rebol script is not working (i.e. not doing a POST).
I can't show you exactly what you'll see if it does work (because I can't get
it to work) but if I capture the correct output from my browser, it looks
something like this:
Welcome to the Monmouth Internet DSL Query Page
Area Code: 732
Exchange: 842
Central Office: RED BANK NJ
CLLI: RDBKNJRB
Rhythms: 17-Nov-1999
All dates are estimated dates of availability which have been
provided by the vendors.
Bill Dudley
Monmouth Internet