如何使用wt实现ajax-request处理?

时间:2014-02-25 10:51:17

标签: c++ json rest wt

我将json发送到url localhost / json。我该如何处理这个请求?怎么样呢?是否需要实现我自己的WResource,WServer,WApplication等等? 请解释一下,如何使用Wt。

/* in LoginForm() */
...
client.done().connect(this, &LoginForm::receiveJSONresponse);
...


void LoginForm::sendLogInRequest()
{
    Json::Object data;
    data["action"] = "login";
    data["username"] = usernameTextEdit.text();
    data["password"] = passwordTextEdit.text(); 
    Http::Message msg;
    msg.addHeader("Content-Type", "application/json");
    msg.addHeader("Accept", "application/json");
    msg.addBodyText(Json::serialize(data));
    client.request(Http::Post, "http://localhost/json", msg);
}

1 个答案:

答案 0 :(得分:2)

您需要专门化一个WResource,并在handleRequest()中查看已发布的数据。

WResource有两种使用方式:会话特定或全局。特定于会话的资源具有随机URL,而全局资源具有指定的(常量)URL。

根据您的要求,要将资源附加到localhost / json,资源必须附加到固定的URL,所以实际上您通过WServer API执行此操作。查看博客示例,了解BlogRSSFeed如何作为静态资源部署。您可以将其用作起点并修改handleRequest以处理发布到资源的json。