Get请求就是我们在浏览器地址栏输入URL时发送请求的方式,或者我们在HTML中定义一个表单(form)时,把action属性设为“Get”时的工作方式;
Get请求字符串就是跟在URL后面以问号“?”开始的字符串,但不包括问号。比如这样的一个请求:
在进入我们自己编写的cgi代码之前,CGIC库已经事先把这个字符串取到了,我们可以在程序中直接获得,要做的仅仅是在你编写的cgiMain方法前面加入以下声明:
extern char *cgiQueryString;
现在给出一个简单的例子,这个例子跟上一篇的测试程序非常相似,只不过程序的输出是使用者输入的Get请求字符串。
下载: test.c
1.#include
2.#include "cgic.h"
3.#include
4.#include
5.6.extern char *cgiQueryString;
7.int cgiMain() {
8.cgiHeaderContentType("text/html");
9.fprintf(cgiOut,
"
\n");
10.fprintf(cgiOut, "
My
CGIC
\n");
11.fprintf(cgiOut, "
");
12.fprintf(cgiOut,
"
%s
",cgiQueryString);13.fprintf(cgiOut, "\n");
14.fprintf(cgiOut, "\n");
15.return
0;
16.}
假设把这个程序编译成out.cgi(编译方法参见上一篇),并部署到Web服务器的cgi-bin目录下,当用户在浏览器地址栏输入本文开头给出的URL字符串时,浏览器页面上会显示:
ThisIsTheGetString
我们也可以编写一个用于测试的HTML页面:
下载: test.html
1.
2.
3.
Test
4.
5.
6.
method="get">
7.
name="theText">
8.
9.
10.
11.
文件的部署结构应该为:
|test.html
|—-cgi-bin/out.cgi
大家可以试试,通过浏览器访问http://127.0.0.1/test.html,在文本框内输入一些字符,并点击提交按钮,然后就可以看到cgi程序的执行结果:把在文本框输入的字符原样显示在浏览器上。