首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从锂离子中提取请求的方法

从锂离子中提取请求的方法
EN

Stack Overflow用户
提问于 2015-11-26 12:22:41
回答 1查看 428关注 0票数 0

我有一个简单的洋葱服务器:

代码语言:javascript
运行
复制
int parse_input(void *p, onion_request *req, onion_response *res)
{
    const onion_request_flags flags = onion_request_get_flags(req);

    if (flags == OR_DELETE) {
        printf("got OR_DELETE\n"); // It doesnt work
    }
}

onion *o=NULL;

static void shutdown_server(int _)
{
    if (o)
    onion_listen_stop(o);
}

int main(int argc, char **argv)
{
    signal(SIGINT,shutdown_server);
    signal(SIGTERM,shutdown_server);

    o=onion_new(O_POOL);
    onion_set_timeout(o, 5000);
    onion_set_hostname(o,"0.0.0.0");
    onion_set_port(o, "4711");
    onion_url *urls=onion_root_url(o);

    onion_url_add(urls, "", parse_input);
    onion_url_add(urls, "^(.*)$", parse_input);

    onion_listen(o);
    onion_free(o);
    return 0;
}

我试图做的是,每当我通过curl发送请求时,我希望服务器在parse_input中获得请求的方法。例如:

代码语言:javascript
运行
复制
curl -X "DELETE" localhost:4711/

我希望服务器现在获得DELETE方法,这样我就可以根据它进行调度了。但是它没有进入if if (flags == OR_DELETE),所以我可能做错了什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-26 13:35:23

似乎你需要写

代码语言:javascript
运行
复制
if ((flags & OR_METHODS) == OR_DELETE)

因为这是一种位域

(我在https://github.com/davidmoreno/onion/blob/master/src/onion/handlers/webdav.c#L102上找到了一个例子)

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

https://stackoverflow.com/questions/33938630

复制
相关文章

相似问题

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