我正在使用bash编写的CGI脚本编写一个web应用程序。
对于 GET
请求,请求参数可以在一个名为 $QUERY_STRING
. 然而,我无法弄清类似的值将存储在哪里,以便于 POST
请求。
我正在使用下面的脚本。
#!"c:/msys64/usr/bin/bash.exe"
# On *nix, replace above with #!/bin/bash
echo -en "Status: 200 OK\r\n"
echo -en "Content-type: text/plain\r\n\r\n"
declare -x
declare -a
这就是我得到的结果
$ curl -so - --data "abc=ZZZZZZ&d=PPPPPPPP" http://localhost/cgi-bin/test.sh | grep ZZZZZZ
$ curl -so - "http://localhost/cgi-bin/test.sh?abc=ZZZZZZ&d=PPPPPPPP" | grep ZZZZZZ
declare -x QUERY_STRING="abc=ZZZZZZ&d=PPPPPPPP"
declare -x REQUEST_URI="/cgi-bin/test.sh?abc=ZZZZZZ&d=PPPPPPPP"
我怎样才能检索到通过请求发送的值?POST
请求?
如果有关系的话,我使用的是Apache 2.4)。
当使用POST方法时。POST值将是你CGI程序的输入。所以在bash中只要使用
read POST_STRING
POST_STRING则包含POST值,格式与QUERY_STRING保存GET请求的值相同。