在NancyFx中获取url参数

use*_*857 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 =>
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

路易斯桑托斯

Chr*_*dal 77

您尝试从URL获取两件事.一个是路径的一部分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"];
}
Run Code Online (Sandbox Code Playgroud)

变量granularity.from,并且to都是dynamic,你可能需要将它们转换为你想要的任何类型.

  • 这应该标记为正确的答案. (4认同)

小智 13

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

public class RequestObject 
{
    public string Granularity { get; set; }
    public long From { get; set; }
    public long To { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

/消费/小时?从= 1402012800000&来= 1402099199000

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