在NancyFx中获取url参数

时间:2014-06-12 16:13:37

标签: nancy

我正在使用NancyFx构建一个Web API,但是从URL获取参数时我遇到了一些问题。

我需要向API发送请求.../consumptions/hourly?from=1402012800000&tags=%171,1342%5D&to=1402099199000并捕获参数的值:granularity,from,tags和to。我尝试了几个approches,没有一个工作。我试过,例如,

Get["consumptions/{granularity}?from={from}&tags={tags}&to={to}"] = x =>
{
    ...
}

我该怎么做?

Luis Santos

3 个答案:

答案 0 :(得分:76)

您尝试从网址获取两件事。一个是路径hourly的一部分 - 另一个是查询字符串中的参数 - 即fromto的值。

您可以通过参数将路径的一部分转到处理程序 - 示例中的x

您可以通过Request上可以访问的NancyModule访问查询字符串。

将其放入代码中:

Get["consumptions/{granularity}"] = x =>
{
    var granularity = x.granularity;
    var from = this.Request.Query["from"];
    var to = this.Request.Query["to"];
}

变量granularityfromto都是dynamic,您可能需要将它们转换为您想要的任何类型。

答案 1 :(得分:13)

你可以让NancyFx的模型绑定处理url查询字符串。

public class RequestObject 
{
    public string Granularity { get; set; }
    public long From { get; set; }
    public long To { get; set; }
}

/消耗/每小时从= 1402012800000&安培;为= 1402099199000

Get["consumptions/{granularity}"] = x =>
{
    var request = this.Bind<RequestObject>();
}

答案 2 :(得分:0)

您可以简单地使用:

var from = Request.Query.from;