首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我如何处理邮件请求?

我如何处理邮件请求?
EN

Stack Overflow用户
提问于 2015-11-25 11:01:52
回答 2查看 761关注 0票数 0

有人能帮我处理POST请求吗?我读了文档,但我不清楚如何处理从页面发送到vibed服务器的POST请求。

我写了下一段代码:

代码语言:javascript
复制
import vibe.d;
import std.stdio;

void main()
{

    auto router = new URLRouter;
    router.any("*", &accControl);
    router.any("/my", &action);

    auto settings = new HTTPServerSettings;
    settings.port = 8080;
    settings.bindAddresses = ["::", "127.0.0.1"];

    listenHTTP(settings, router);
    runEventLoop();
}

void accControl(HTTPServerRequest req, HTTPServerResponse res)
{
    res.headers["Access-Control-Allow-Origin"] = "*";
}


void action(HTTPServerRequest req, HTTPServerResponse res)
{
    // how get string from POST request here. And how get JSON object, if server send it.
}

但是我应该用什么方法来做req呢?据我所知,POST机构正在发送大量其他数据。

POST请求是用JQuery发送的:

代码语言:javascript
复制
$.post("http://127.0.0.1:8080", "\"answers_result\":777");

所以我需要得到这个JSON,然后用vibed发送给DB。但问题是我不知道该怎么处理。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-25 11:53:11

主要是:

代码语言:javascript
复制
auto router = new URLRouter;
router.post("/url_to_match", &action);

listenHTTP(settings, router);

操作:

代码语言:javascript
复制
void action(HTTPServerRequest req, HTTPServerResponse res)
{
    auto answers_result = req.json["answers_result"].to!int;

    // ...
}

或者你可以使用registerRestInterface

票数 0
EN

Stack Overflow用户

发布于 2015-12-16 12:24:25

下面是演示如何从vibe.d读取POST参数的示例代码:

主要职能:

代码语言:javascript
复制
shared static this()
{
   auto router = new URLRouter;
   router.post("/url_to_match", &action);

   auto settings = new HTTPServerSettings;
   settings.port = 3000;
   listenHTTP(settings, router);
}

操作:

代码语言:javascript
复制
void action(HTTPServerRequest req, HTTPServerResponse res)
{
    // Read first POST parameter named "first_name"
    auto firstName = req.form["first_name"];

    // Read second POST parameter named "last_name"
    auto lastName = req.form["last_name"];

    // Prepare output to be sent to client.
    auto name = "Hello %s, %s".format(lastName, firstName);

    // Send data back to client
    res.writeBody(name);
}

构建程序并运行它,要在本地计算机上试用它,您可以执行以下简单的curl请求:

代码语言:javascript
复制
curl --data "first_name=kareem&last_name=smith" "http://localhost:3000/url_to_match"

HTH

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33914800

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档