当前位置:首页 > 公众号精选 > 漫长当下

前面我们已经熟悉了goahead-test程序的基本使用方法,今天测试一下action。

在test.c中,actionTest相关的代码如下(这里只分析其中一个,源码定义了三个):

//定义action,将函数actionTest绑定到/action/test这个url
websDefineAction("test", actionTest);

/*
    Implement /action/actionTest. Parse the form variables: name, address and echo back.
 */

static void actionTest(Webs *wp)
{
    cchar   *name, *address;

    /*获取变量"name"和"address"的值*/
    name = websGetVar(wp, "name", NULL);
    address = websGetVar(wp, "address", NULL);
    websSetStatus(wp, 200);
    websWriteHeaders(wp, -1, 0);
    websWriteEndHeaders(wp);
    //回显到页面上
    websWrite(wp, "

name: %s, address: %s

\n", name, address);
    websFlush(wp, 0);
    websDone(wp);
}

可以看到其功能是通过web页面获取变量”name”和”address”的值,然后回显到页面上,由于例程中没有提供对应的web页面,所以需要自己编写,我们做一个简单的输入界面,代码如下:


<html>
<meta charset="utf-8"/>
<body>


<form method="POST" action="/action/test">
    actionTest:
    br>
    
    <input type="text" name="name" value="name" />
    br>
    
    <input type="text" name="address" value="address" />
    br>
    <input type="submit" value="ok" />
form>

body>
html>

将其保存为test_action.html,并且存放到web目录下(注意这里不能将action写在前面,我也不知道为什么,测试的时候发现只要将action写在前面,运行的的时候就会提示action未定义),这里完成后,我们就可以运行goahead-test程序访问这个页面了。

输入如下命令运行goahead服务器:

./goahead-test -v --home ../../../test/

在浏览器访问就可以看到对应的页面了(如图1,在输入框中分别输入变量”name”和”address”的内容,点击提交,服务器就会将我们输入的内容回显到页面上。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
关闭